{
  "version": 3,
  "sources": ["ssg:https://ga.jspm.io/npm:style-value-types@5.0.0/dist/es/index.mjs", "ssg:https://ga.jspm.io/npm:framesync@6.0.1/dist/es/index.mjs", "ssg:https://ga.jspm.io/npm:popmotion@11.0.3/dist/es/index.mjs", "ssg:https://framerusercontent.com/modules/B2xAlJLcN0gOnt11mSPw/PH5dKwV7X6kCySScDT2G/Ticker.js", "ssg:https://ga.jspm.io/npm:matter-js@0.18.0/build/matter.js", "ssg:https://framer.com/m/MakeWalls-36kf.js@Ok6wam0uM9G4VUuXWgpR", "ssg:https://framer.com/m/MakeBodies-Lkv1.js@LTuIQWugGJr30ZUS1CV9", "ssg:https://framerusercontent.com/modules/N5gPcnnCOfWUGKWW5otL/TOzdbDZWfo0lwuFMw6DQ/Physics.js", "ssg:https://framerusercontent.com/modules/jZym9uKmCo1vhGTBiqNf/HM0Jc3cf5tnHUo8OJkU5/Bq2qNuwKW.js"],
  "sourcesContent": ["const clamp=(t,s)=>e=>Math.max(Math.min(e,s),t);const sanitize=t=>t%1?Number(t.toFixed(5)):t;const t=/(-)?([\\d]*\\.?[\\d])+/g;const s=/(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2,3}\\s*\\/*\\s*[\\d\\.]+%?\\))/gi;const e=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2,3}\\s*\\/*\\s*[\\d\\.]+%?\\))$/i;function isString(t){return\"string\"===typeof t}const r={test:t=>\"number\"===typeof t,parse:parseFloat,transform:t=>t};const n=Object.assign(Object.assign({},r),{transform:clamp(0,1)});const a=Object.assign(Object.assign({},r),{default:1});const createUnitType=t=>({test:s=>isString(s)&&s.endsWith(t)&&1===s.split(\" \").length,parse:parseFloat,transform:s=>`${s}${t}`});const o=createUnitType(\"deg\");const c=createUnitType(\"%\");const l=createUnitType(\"px\");const i=createUnitType(\"vh\");const p=createUnitType(\"vw\");const u=Object.assign(Object.assign({},c),{parse:t=>c.parse(t)/100,transform:t=>c.transform(100*t)});const isColorString=(t,s)=>r=>Boolean(isString(r)&&e.test(r)&&r.startsWith(t)||s&&Object.prototype.hasOwnProperty.call(r,s));const splitColor=(s,e,r)=>n=>{if(!isString(n))return n;const[a,o,c,l]=n.match(t);return{[s]:parseFloat(a),[e]:parseFloat(o),[r]:parseFloat(c),alpha:void 0!==l?parseFloat(l):1}};const f={test:isColorString(\"hsl\",\"hue\"),parse:splitColor(\"hue\",\"saturation\",\"lightness\"),transform:({hue:t,saturation:s,lightness:e,alpha:r=1})=>\"hsla(\"+Math.round(t)+\", \"+c.transform(sanitize(s))+\", \"+c.transform(sanitize(e))+\", \"+sanitize(n.transform(r))+\")\"};const m=clamp(0,255);const g=Object.assign(Object.assign({},r),{transform:t=>Math.round(m(t))});const h={test:isColorString(\"rgb\",\"red\"),parse:splitColor(\"red\",\"green\",\"blue\"),transform:({red:t,green:s,blue:e,alpha:r=1})=>\"rgba(\"+g.transform(t)+\", \"+g.transform(s)+\", \"+g.transform(e)+\", \"+sanitize(n.transform(r))+\")\"};function parseHex(t){let s=\"\";let e=\"\";let r=\"\";let n=\"\";if(t.length>5){s=t.substr(1,2);e=t.substr(3,2);r=t.substr(5,2);n=t.substr(7,2)}else{s=t.substr(1,1);e=t.substr(2,1);r=t.substr(3,1);n=t.substr(4,1);s+=s;e+=e;r+=r;n+=n}return{red:parseInt(s,16),green:parseInt(e,16),blue:parseInt(r,16),alpha:n?parseInt(n,16)/255:1}}const b={test:isColorString(\"#\"),parse:parseHex,transform:h.transform};const d={test:t=>h.test(t)||b.test(t)||f.test(t),parse:t=>h.test(t)?h.parse(t):f.test(t)?f.parse(t):b.parse(t),transform:t=>isString(t)?t:t.hasOwnProperty(\"red\")?h.transform(t):f.transform(t)};const v=\"${c}\";const y=\"${n}\";function test(e){var r,n,a,o;return isNaN(e)&&isString(e)&&(null!==(n=null===(r=e.match(t))||void 0===r?void 0:r.length)&&void 0!==n?n:0)+(null!==(o=null===(a=e.match(s))||void 0===a?void 0:a.length)&&void 0!==o?o:0)>0}function analyse(e){\"number\"===typeof e&&(e=`${e}`);const n=[];let a=0;const o=e.match(s);if(o){a=o.length;e=e.replace(s,v);n.push(...o.map(d.parse))}const c=e.match(t);if(c){e=e.replace(t,y);n.push(...c.map(r.parse))}return{values:n,numColors:a,tokenised:e}}function parse(t){return analyse(t).values}function createTransformer(t){const{values:s,numColors:e,tokenised:r}=analyse(t);const n=s.length;return t=>{let s=r;for(let r=0;r<n;r++)s=s.replace(r<e?v:y,r<e?d.transform(t[r]):sanitize(t[r]));return s}}const convertNumbersToZero=t=>\"number\"===typeof t?0:t;function getAnimatableNone(t){const s=parse(t);const e=createTransformer(t);return e(s.map(convertNumbersToZero))}const O={test:test,parse:parse,createTransformer:createTransformer,getAnimatableNone:getAnimatableNone};const j=new Set([\"brightness\",\"contrast\",\"saturate\",\"opacity\"]);function applyDefaultFilter(s){let[e,r]=s.slice(0,-1).split(\"(\");if(\"drop-shadow\"===e)return s;const[n]=r.match(t)||[];if(!n)return s;const a=r.replace(n,\"\");let o=j.has(e)?1:0;n!==r&&(o*=100);return e+\"(\"+o+a+\")\"}const F=/([a-z-]*)\\(.*?\\)/g;const N=Object.assign(Object.assign({},O),{getAnimatableNone:t=>{const s=t.match(F);return s?s.map(applyDefaultFilter).join(\" \"):t}});export{n as alpha,d as color,O as complex,o as degrees,N as filter,b as hex,f as hsla,r as number,c as percent,u as progressPercentage,l as px,g as rgbUnit,h as rgba,a as scale,i as vh,p as vw};\n\n//# sourceMappingURL=index.mjs.map", "const e=1/60*1e3;const t=\"undefined\"!==typeof performance?()=>performance.now():()=>Date.now();const n=\"undefined\"!==typeof window?e=>window.requestAnimationFrame(e):n=>setTimeout((()=>n(t())),e);function createRenderStep(e){let t=[];let n=[];let s=0;let r=false;let c=false;const o=new WeakSet;const a={schedule:(e,c=false,a=false)=>{const l=a&&r;const f=l?t:n;c&&o.add(e);if(-1===f.indexOf(e)){f.push(e);l&&r&&(s=t.length)}return e},cancel:e=>{const t=n.indexOf(e);-1!==t&&n.splice(t,1);o.delete(e)},process:l=>{if(r)c=true;else{r=true;[t,n]=[n,t];n.length=0;s=t.length;if(s)for(let n=0;n<s;n++){const s=t[n];s(l);if(o.has(s)){a.schedule(s);e()}}r=false;if(c){c=false;a.process(l)}}}};return a}const s=40;let r=true;let c=false;let o=false;const a={delta:0,timestamp:0};const l=[\"read\",\"update\",\"preRender\",\"render\",\"postRender\"];const f=l.reduce(((e,t)=>{e[t]=createRenderStep((()=>c=true));return e}),{});const u=l.reduce(((e,t)=>{const n=f[t];e[t]=(e,t=false,s=false)=>{c||startLoop();return n.schedule(e,t,s)};return e}),{});const d=l.reduce(((e,t)=>{e[t]=f[t].cancel;return e}),{});const i=l.reduce(((e,t)=>{e[t]=()=>f[t].process(a);return e}),{});const processStep=e=>f[e].process(a);const processFrame=t=>{c=false;a.delta=r?e:Math.max(Math.min(t-a.timestamp,s),1);a.timestamp=t;o=true;l.forEach(processStep);o=false;if(c){r=false;n(processFrame)}};const startLoop=()=>{c=true;r=true;o||n(processFrame)};const getFrameData=()=>a;export{d as cancelSync,u as default,i as flushSync,getFrameData};\n\n//# sourceMappingURL=index.mjs.map", "import{__rest as t}from\"tslib\";import{warning as e,invariant as n}from\"hey-listen\";import{hex as o,rgba as s,hsla as r,color as i,complex as u}from\"style-value-types\";import l,{cancelSync as p,getFrameData as f}from\"framesync\";const clamp=(t,e,n)=>Math.min(Math.max(n,t),e);const d=.001;const h=.01;const m=10;const y=.05;const g=1;function findSpring({duration:t=800,bounce:n=.25,velocity:o=0,mass:s=1}){let r;let i;e(t<=1e3*m,\"Spring duration must be 10 seconds or less\");let u=1-n;u=clamp(y,g,u);t=clamp(h,m,t/1e3);if(u<1){r=e=>{const n=e*u;const s=n*t;const r=n-o;const i=calcAngularFreq(e,u);const l=Math.exp(-s);return d-r/i*l};i=e=>{const n=e*u;const s=n*t;const i=s*o+o;const l=Math.pow(u,2)*Math.pow(e,2)*t;const p=Math.exp(-s);const f=calcAngularFreq(Math.pow(e,2),u);const h=-r(e)+d>0?-1:1;return h*((i-l)*p)/f}}else{r=e=>{const n=Math.exp(-e*t);const s=(e-o)*t+1;return n*s-d};i=e=>{const n=Math.exp(-e*t);const s=t*t*(o-e);return n*s}}const l=5/t;const p=approximateRoot(r,i,l);t*=1e3;if(isNaN(p))return{stiffness:100,damping:10,duration:t};{const e=Math.pow(p,2)*s;return{stiffness:e,damping:2*u*Math.sqrt(s*e),duration:t}}}const v=12;function approximateRoot(t,e,n){let o=n;for(let n=1;n<v;n++)o-=t(o)/e(o);return o}function calcAngularFreq(t,e){return t*Math.sqrt(1-e*e)}const M=[\"duration\",\"bounce\"];const x=[\"stiffness\",\"damping\",\"mass\"];function isSpringType(t,e){return e.some((e=>void 0!==t[e]))}function getSpringOptions(t){let e=Object.assign({velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:false},t);if(!isSpringType(t,x)&&isSpringType(t,M)){const n=findSpring(t);e=Object.assign(Object.assign(Object.assign({},e),n),{velocity:0,mass:1});e.isResolvedFromDuration=true}return e}function spring(e){var{from:n=0,to:o=1,restSpeed:s=2,restDelta:r}=e,i=t(e,[\"from\",\"to\",\"restSpeed\",\"restDelta\"]);const u={done:false,value:n};let{stiffness:l,damping:p,mass:f,velocity:d,duration:h,isResolvedFromDuration:m}=getSpringOptions(i);let y=zero;let g=zero;function createSpring(){const t=d?-d/1e3:0;const e=o-n;const s=p/(2*Math.sqrt(l*f));const i=Math.sqrt(l/f)/1e3;void 0===r&&(r=Math.min(Math.abs(o-n)/100,.4));if(s<1){const n=calcAngularFreq(i,s);y=r=>{const u=Math.exp(-s*i*r);return o-u*((t+s*i*e)/n*Math.sin(n*r)+e*Math.cos(n*r))};g=o=>{const r=Math.exp(-s*i*o);return s*i*r*(Math.sin(n*o)*(t+s*i*e)/n+e*Math.cos(n*o))-r*(Math.cos(n*o)*(t+s*i*e)-n*e*Math.sin(n*o))}}else if(1===s)y=n=>o-Math.exp(-i*n)*(e+(t+i*e)*n);else{const n=i*Math.sqrt(s*s-1);y=r=>{const u=Math.exp(-s*i*r);const l=Math.min(n*r,300);return o-u*((t+s*i*e)*Math.sinh(l)+n*e*Math.cosh(l))/n}}}createSpring();return{next:t=>{const e=y(t);if(m)u.done=t>=h;else{const n=1e3*g(t);const i=Math.abs(n)<=s;const l=Math.abs(o-e)<=r;u.done=i&&l}u.value=u.done?o:e;return u},flipTarget:()=>{d=-d;[n,o]=[o,n];createSpring()}}}spring.needsInterpolation=(t,e)=>\"string\"===typeof t||\"string\"===typeof e;const zero=t=>0;const progress=(t,e,n)=>{const o=e-t;return 0===o?1:(n-t)/o};const mix=(t,e,n)=>-n*t+n*e+t;function hueToRgb(t,e,n){n<0&&(n+=1);n>1&&(n-=1);return n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t}function hslaToRgba({hue:t,saturation:e,lightness:n,alpha:o}){t/=360;e/=100;n/=100;let s=0;let r=0;let i=0;if(e){const o=n<.5?n*(1+e):n+e-n*e;const u=2*n-o;s=hueToRgb(u,o,t+1/3);r=hueToRgb(u,o,t);i=hueToRgb(u,o,t-1/3)}else s=r=i=n;return{red:Math.round(255*s),green:Math.round(255*r),blue:Math.round(255*i),alpha:o}}const mixLinearColor=(t,e,n)=>{const o=t*t;const s=e*e;return Math.sqrt(Math.max(0,n*(s-o)+o))};const S=[o,s,r];const getColorType=t=>S.find((e=>e.test(t)));const notAnimatable=t=>`'${t}' is not an animatable color. Use the equivalent color code instead.`;const mixColor=(t,e)=>{let o=getColorType(t);let i=getColorType(e);n(!!o,notAnimatable(t));n(!!i,notAnimatable(e));let u=o.parse(t);let l=i.parse(e);if(o===r){u=hslaToRgba(u);o=s}if(i===r){l=hslaToRgba(l);i=s}const p=Object.assign({},u);return t=>{for(const e in p)\"alpha\"!==e&&(p[e]=mixLinearColor(u[e],l[e],t));p.alpha=mix(u.alpha,l.alpha,t);return o.transform(p)}};const O={x:0,y:0,z:0};const isNum=t=>\"number\"===typeof t;const combineFunctions=(t,e)=>n=>e(t(n));const pipe=(...t)=>t.reduce(combineFunctions);function getMixer(t,e){return isNum(t)?n=>mix(t,e,n):i.test(t)?mixColor(t,e):mixComplex(t,e)}const mixArray=(t,e)=>{const n=[...t];const o=n.length;const s=t.map(((t,n)=>getMixer(t,e[n])));return t=>{for(let e=0;e<o;e++)n[e]=s[e](t);return n}};const mixObject=(t,e)=>{const n=Object.assign(Object.assign({},t),e);const o={};for(const s in n)void 0!==t[s]&&void 0!==e[s]&&(o[s]=getMixer(t[s],e[s]));return t=>{for(const e in o)n[e]=o[e](t);return n}};function analyse(t){const e=u.parse(t);const n=e.length;let o=0;let s=0;let r=0;for(let t=0;t<n;t++)o||\"number\"===typeof e[t]?o++:void 0!==e[t].hue?r++:s++;return{parsed:e,numNumbers:o,numRGB:s,numHSL:r}}const mixComplex=(t,n)=>{const o=u.createTransformer(n);const s=analyse(t);const r=analyse(n);const i=s.numHSL===r.numHSL&&s.numRGB===r.numRGB&&s.numNumbers>=r.numNumbers;if(i)return pipe(mixArray(s.parsed,r.parsed),o);e(true,`Complex values '${t}' and '${n}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`);return e=>`${e>0?n:t}`};const mixNumber=(t,e)=>n=>mix(t,e,n);function detectMixerFactory(t){return\"number\"===typeof t?mixNumber:\"string\"===typeof t?i.test(t)?mixColor:mixComplex:Array.isArray(t)?mixArray:\"object\"===typeof t?mixObject:void 0}function createMixers(t,e,n){const o=[];const s=n||detectMixerFactory(t[0]);const r=t.length-1;for(let n=0;n<r;n++){let r=s(t[n],t[n+1]);if(e){const t=Array.isArray(e)?e[n]:e;r=pipe(t,r)}o.push(r)}return o}function fastInterpolate([t,e],[n]){return o=>n(progress(t,e,o))}function slowInterpolate(t,e){const n=t.length;const o=n-1;return s=>{let r=0;let i=false;if(s<=t[0])i=true;else if(s>=t[o]){r=o-1;i=true}if(!i){let e=1;for(;e<n;e++)if(t[e]>s||e===o)break;r=e-1}const u=progress(t[r],t[r+1],s);return e[r](u)}}function interpolate(t,e,{clamp:o=true,ease:s,mixer:r}={}){const i=t.length;n(i===e.length,\"Both input and output ranges must be the same length\");n(!s||!Array.isArray(s)||s.length===i-1,\"Array of easing functions must be of length `input.length - 1`, as it applies to the transitions **between** the defined values.\");if(t[0]>t[i-1]){t=[].concat(t);e=[].concat(e);t.reverse();e.reverse()}const u=createMixers(e,s,r);const l=2===i?fastInterpolate(t,u):slowInterpolate(t,u);return o?e=>l(clamp(t[0],t[i-1],e)):l}const reverseEasing=t=>e=>1-t(1-e);const mirrorEasing=t=>e=>e<=.5?t(2*e)/2:(2-t(2*(1-e)))/2;const createExpoIn=t=>e=>Math.pow(e,t);const createBackIn=t=>e=>e*e*((t+1)*e-t);const createAnticipate=t=>{const e=createBackIn(t);return t=>(t*=2)<1?.5*e(t):.5*(2-Math.pow(2,-10*(t-1)))};const T=1.525;const w=4/11;const A=8/11;const R=.9;const linear=t=>t;const F=createExpoIn(2);const D=reverseEasing(F);const j=mirrorEasing(F);const circIn=t=>1-Math.sin(Math.acos(t));const q=reverseEasing(circIn);const I=mirrorEasing(q);const P=createBackIn(T);const k=reverseEasing(P);const E=mirrorEasing(P);const B=createAnticipate(T);const C=4356/361;const N=35442/1805;const U=16061/1805;const bounceOut=t=>{if(1===t||0===t)return t;const e=t*t;return t<w?7.5625*e:t<A?9.075*e-9.9*t+3.4:t<R?C*e-N*t+U:10.8*t*t-20.52*t+10.72};const z=reverseEasing(bounceOut);const bounceInOut=t=>t<.5?.5*(1-bounceOut(1-2*t)):.5*bounceOut(2*t-1)+.5;function defaultEasing(t,e){return t.map((()=>e||j)).splice(0,t.length-1)}function defaultOffset(t){const e=t.length;return t.map(((t,n)=>0!==n?n/(e-1):0))}function convertOffsetToTimes(t,e){return t.map((t=>t*e))}function keyframes({from:t=0,to:e=1,ease:n,offset:o,duration:s=300}){const r={done:false,value:t};const i=Array.isArray(e)?e:[t,e];const u=convertOffsetToTimes(o&&o.length===i.length?o:defaultOffset(i),s);function createInterpolator(){return interpolate(u,i,{ease:Array.isArray(n)?n:defaultEasing(i,n)})}let l=createInterpolator();return{next:t=>{r.value=l(t);r.done=t>=s;return r},flipTarget:()=>{i.reverse();l=createInterpolator()}}}function decay({velocity:t=0,from:e=0,power:n=.8,timeConstant:o=350,restDelta:s=.5,modifyTarget:r}){const i={done:false,value:e};let u=n*t;const l=e+u;const p=void 0===r?l:r(l);p!==l&&(u=p-e);return{next:t=>{const e=-u*Math.exp(-t/o);i.done=!(e>s||e<-s);i.value=i.done?p:p+e;return i},flipTarget:()=>{}}}const $={keyframes:keyframes,spring:spring,decay:decay};function detectAnimationFromOptions(t){if(Array.isArray(t.to))return keyframes;if($[t.type])return $[t.type];const e=new Set(Object.keys(t));return e.has(\"ease\")||e.has(\"duration\")&&!e.has(\"dampingRatio\")?keyframes:e.has(\"dampingRatio\")||e.has(\"stiffness\")||e.has(\"mass\")||e.has(\"damping\")||e.has(\"restSpeed\")||e.has(\"restDelta\")?spring:keyframes}function loopElapsed(t,e,n=0){return t-e-n}function reverseElapsed(t,e,n=0,o=true){return o?loopElapsed(e+-t,e,n):e-(t-e)+n}function hasRepeatDelayElapsed(t,e,n,o){return o?t>=e+n:t<=-n}const framesync=t=>{const passTimestamp=({delta:e})=>t(e);return{start:()=>l.update(passTimestamp,true),stop:()=>p.update(passTimestamp)}};function animate(e){var n,o;var{from:s,autoplay:r=true,driver:i=framesync,elapsed:u=0,repeat:l=0,repeatType:p=\"loop\",repeatDelay:f=0,onPlay:d,onStop:h,onComplete:m,onRepeat:y,onUpdate:g}=e,v=t(e,[\"from\",\"autoplay\",\"driver\",\"elapsed\",\"repeat\",\"repeatType\",\"repeatDelay\",\"onPlay\",\"onStop\",\"onComplete\",\"onRepeat\",\"onUpdate\"]);let{to:M}=v;let x;let S=0;let O=v.duration;let T;let w=false;let A=true;let R;const F=detectAnimationFromOptions(v);if(null===(o=(n=F).needsInterpolation)||void 0===o?void 0:o.call(n,s,M)){R=interpolate([0,100],[s,M],{clamp:false});s=0;M=100}const D=F(Object.assign(Object.assign({},v),{from:s,to:M}));function repeat(){S++;if(\"reverse\"===p){A=S%2===0;u=reverseElapsed(u,O,f,A)}else{u=loopElapsed(u,O,f);\"mirror\"===p&&D.flipTarget()}w=false;y&&y()}function complete(){x.stop();m&&m()}function update(t){A||(t=-t);u+=t;if(!w){const t=D.next(Math.max(0,u));T=t.value;R&&(T=R(T));w=A?t.done:u<=0}null===g||void 0===g?void 0:g(T);if(w){0===S&&(null!==O&&void 0!==O?O:O=u);S<l?hasRepeatDelayElapsed(u,O,f,A)&&repeat():complete()}}function play(){null===d||void 0===d?void 0:d();x=i(update);x.start()}r&&play();return{stop:()=>{null===h||void 0===h?void 0:h();x.stop()}}}function velocityPerSecond(t,e){return e?t*(1e3/e):0}function inertia({from:t=0,velocity:e=0,min:n,max:o,power:s=.8,timeConstant:r=750,bounceStiffness:i=500,bounceDamping:u=10,restDelta:l=1,modifyTarget:p,driver:d,onUpdate:h,onComplete:m,onStop:y}){let g;function isOutOfBounds(t){return void 0!==n&&t<n||void 0!==o&&t>o}function boundaryNearest(t){return void 0===n?o:void 0===o||Math.abs(n-t)<Math.abs(o-t)?n:o}function startAnimation(t){null===g||void 0===g?void 0:g.stop();g=animate(Object.assign(Object.assign({},t),{driver:d,onUpdate:e=>{var n;null===h||void 0===h?void 0:h(e);null===(n=t.onUpdate)||void 0===n?void 0:n.call(t,e)},onComplete:m,onStop:y}))}function startSpring(t){startAnimation(Object.assign({type:\"spring\",stiffness:i,damping:u,restDelta:l},t))}if(isOutOfBounds(t))startSpring({from:t,velocity:e,to:boundaryNearest(t)});else{let o=s*e+t;\"undefined\"!==typeof p&&(o=p(o));const i=boundaryNearest(o);const u=i===n?-1:1;let d;let h;const checkBoundary=t=>{d=h;h=t;e=velocityPerSecond(t-d,f().delta);(1===u&&t>i||-1===u&&t<i)&&startSpring({from:t,to:i,velocity:e})};startAnimation({type:\"decay\",from:t,velocity:e,timeConstant:r,power:s,restDelta:l,modifyTarget:p,onUpdate:isOutOfBounds(o)?checkBoundary:void 0})}return{stop:()=>null===g||void 0===g?void 0:g.stop()}}const radiansToDegrees=t=>180*t/Math.PI;const angle=(t,e=O)=>radiansToDegrees(Math.atan2(e.y-t.y,e.x-t.x));const applyOffset=(t,e)=>{let n=true;if(void 0===e){e=t;n=false}return o=>{if(n)return o-t+e;t=o;n=true;return e}};const identity=t=>t;const createAttractor=(t=identity)=>(e,n,o)=>{const s=n-o;const r=-(0-e+1)*(0-t(Math.abs(s)));return s<=0?n+r:n-r};const G=createAttractor();const H=createAttractor(Math.sqrt);const degreesToRadians=t=>t*Math.PI/180;const isPoint=t=>t.hasOwnProperty(\"x\")&&t.hasOwnProperty(\"y\");const isPoint3D=t=>isPoint(t)&&t.hasOwnProperty(\"z\");const distance1D=(t,e)=>Math.abs(t-e);function distance(t,e){if(isNum(t)&&isNum(e))return distance1D(t,e);if(isPoint(t)&&isPoint(e)){const n=distance1D(t.x,e.x);const o=distance1D(t.y,e.y);const s=isPoint3D(t)&&isPoint3D(e)?distance1D(t.z,e.z):0;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2)+Math.pow(s,2))}}const pointFromVector=(t,e,n)=>{e=degreesToRadians(e);return{x:n*Math.cos(e)+t.x,y:n*Math.sin(e)+t.y}};const toDecimal=(t,e=2)=>{e=Math.pow(10,e);return Math.round(t*e)/e};const smoothFrame=(t,e,n,o=0)=>toDecimal(t+n*(e-t)/Math.max(o,n));const smooth=(t=50)=>{let e=0;let n=0;return o=>{const s=f().timestamp;const r=s!==n?s-n:0;const i=r?smoothFrame(e,o,r,t):e;n=s;e=i;return i}};const snap=t=>{if(\"number\"===typeof t)return e=>Math.round(e/t)*t;{let e=0;const n=t.length;return o=>{let s=Math.abs(t[0]-o);for(e=1;e<n;e++){const r=t[e];const i=Math.abs(r-o);if(0===i)return r;if(i>s)return t[e-1];if(e===n-1)return r;s=i}}}};function velocityPerFrame(t,e){return t/(1e3/e)}const wrap=(t,e,n)=>{const o=e-t;return((n-t)%o+o)%o+t};const a=(t,e)=>1-3*e+3*t;const b=(t,e)=>3*e-6*t;const c=t=>3*t;const calcBezier=(t,e,n)=>((a(e,n)*t+b(e,n))*t+c(e))*t;const getSlope=(t,e,n)=>3*a(e,n)*t*t+2*b(e,n)*t+c(e);const L=1e-7;const X=10;function binarySubdivide(t,e,n,o,s){let r;let i;let u=0;do{i=e+(n-e)/2;r=calcBezier(i,o,s)-t;r>0?n=i:e=i}while(Math.abs(r)>L&&++u<X);return i}const J=8;const K=.001;function newtonRaphsonIterate(t,e,n,o){for(let s=0;s<J;++s){const s=getSlope(e,n,o);if(0===s)return e;const r=calcBezier(e,n,o)-t;e-=r/s}return e}const Q=11;const V=1/(Q-1);function cubicBezier(t,e,n,o){if(t===e&&n===o)return linear;const s=new Float32Array(Q);for(let e=0;e<Q;++e)s[e]=calcBezier(e*V,t,n);function getTForX(e){let o=0;let r=1;const i=Q-1;for(;r!==i&&s[r]<=e;++r)o+=V;--r;const u=(e-s[r])/(s[r+1]-s[r]);const l=o+u*V;const p=getSlope(l,t,n);return p>=K?newtonRaphsonIterate(e,l,t,n):0===p?l:binarySubdivide(e,o,o+V,t,n)}return t=>0===t||1===t?t:calcBezier(getTForX(t),e,o)}const steps=(t,e=\"end\")=>n=>{n=\"end\"===e?Math.min(n,.999):Math.max(n,.001);const o=n*t;const s=\"end\"===e?Math.floor(o):Math.ceil(o);return clamp(0,1,s/t)};export{angle,animate,B as anticipate,applyOffset,G as attract,H as attractExpo,P as backIn,E as backInOut,k as backOut,z as bounceIn,bounceInOut,bounceOut,circIn,I as circInOut,q as circOut,clamp,createAnticipate,createAttractor,createBackIn,createExpoIn,cubicBezier,decay,degreesToRadians,distance,F as easeIn,j as easeInOut,D as easeOut,inertia,interpolate,isPoint,isPoint3D,keyframes,linear,mirrorEasing,mix,mixColor,mixComplex,pipe,pointFromVector,progress,radiansToDegrees,reverseEasing,smooth,smoothFrame,snap,spring,steps,toDecimal,velocityPerFrame,velocityPerSecond,wrap};\n\n//# sourceMappingURL=index.mjs.map", "import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{Children,useLayoutEffect,useEffect,useState,useRef,useMemo,createRef,useCallback,cloneElement}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useAnimationFrame,useReducedMotion,LayoutGroup,useInView}from\"framer-motion\";import{resize}from\"@motionone/dom\";import{wrap}from\"popmotion\";/**\n *\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 200\n *\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */ export default function Ticker(props){/* Props */ const{slots,gap,padding,paddingPerSide,paddingTop,paddingRight,paddingBottom,paddingLeft,speed,hoverFactor,direction,alignment,sizingOptions,fadeOptions,style}=props;const{fadeContent,overflow,fadeWidth,fadeInset,fadeAlpha}=fadeOptions;const{widthType,heightType}=sizingOptions;const paddingValue=paddingPerSide?`${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px`:`${padding}px`;/* Checks */ const isCanvas=RenderTarget.current()===RenderTarget.canvas;const numChildren=Children.count(slots);const hasChildren=numChildren>0;const isHorizontal=direction===\"left\"||direction===\"right\";/* Refs and State */ const parentRef=useRef(null);const childrenRef=useMemo(()=>{return[/*#__PURE__*/ createRef(),/*#__PURE__*/ createRef()];},[]);const[size,setSize]=useState({parent:null,children:null});/* Arrays */ let clonedChildren=[];let dupedChildren=[];/* Duplicate value */ let duplicateBy=0;let opacity=0;if(isCanvas){// duplicateBy = 10\nduplicateBy=numChildren?Math.floor(10/numChildren):0;opacity=1;}if(!isCanvas&&hasChildren&&size.parent){duplicateBy=Math.round(size.parent/size.children*2)+1;opacity=1;}/* Measure parent and child */ const measure=useCallback(()=>{if(hasChildren&&parentRef.current){const parentLength=isHorizontal?parentRef.current.offsetWidth:parentRef.current.offsetHeight;const start=childrenRef[0].current?isHorizontal?childrenRef[0].current.offsetLeft:childrenRef[0].current.offsetTop:0;const end=childrenRef[1].current?isHorizontal?childrenRef[1].current.offsetLeft+childrenRef[1].current.offsetWidth:childrenRef[1].current.offsetTop+childrenRef[1].current.offsetHeight:0;const childrenLength=end-start+gap;setSize({parent:parentLength,children:childrenLength});}},[]);/* Add refs to first and last child */ if(hasChildren){// TODO: These conditional hooks will be unsafe if hasChildren ever changes outside the canvas.\nif(!isCanvas){useLayoutEffect(()=>{measure();},[]);/**\n             * Track whether this is the initial resize event. By default this will fire on mount,\n             * which we do in the useEffect. We should only fire it on subsequent resizes.\n             */ let initialResize=useRef(true);useEffect(()=>{return resize(parentRef.current,({contentSize})=>{if(!initialResize.current&&(contentSize.width||contentSize.height)){measure();}initialResize.current=false;});},[]);}clonedChildren=Children.map(slots,(child,index)=>{var ref,ref1,ref2,ref3;let ref4;if(index===0){ref4=childrenRef[0];}if(index===slots.length-1){ref4=childrenRef[1];}const size={width:widthType?(ref=child.props)===null||ref===void 0?void 0:ref.width:\"100%\",height:heightType?(ref1=child.props)===null||ref1===void 0?void 0:ref1.height:\"100%\"};return /*#__PURE__*/ _jsx(LayoutGroup,{inherit:\"id\",children:/*#__PURE__*/ _jsx(\"li\",{ref:ref4,style:size,children:/*#__PURE__*/ cloneElement(child,{style:{...(ref2=child.props)===null||ref2===void 0?void 0:ref2.style,...size,flexShrink:0}},(ref3=child.props)===null||ref3===void 0?void 0:ref3.children)})});});}if(!isCanvas){for(let i=0;i<duplicateBy;i++){dupedChildren=[...dupedChildren,...Children.map(slots,(child,childIndex)=>{var ref,ref1,ref2,ref3;return /*#__PURE__*/ _jsx(LayoutGroup,{inherit:\"id\",children:/*#__PURE__*/ _jsx(\"li\",{style:{display:\"contents\"},children:/*#__PURE__*/ cloneElement(child,{key:i+\" \"+childIndex,style:{...(ref=child.props)===null||ref===void 0?void 0:ref.style,width:widthType?(ref1=child.props)===null||ref1===void 0?void 0:ref1.width:\"100%\",height:heightType?(ref2=child.props)===null||ref2===void 0?void 0:ref2.height:\"100%\",flexShrink:0}},(ref3=child.props)===null||ref3===void 0?void 0:ref3.children)},i+\"li\"+childIndex)},i+\"lg\"+childIndex);}),];}}const animateToValue=size.children+size.children*Math.round(size.parent/size.children);const transformRef=useRef(null);const initialTime=useRef(null);const prevTime=useRef(null);const xOrY=useRef(0);const isHover=useRef(false);const isInView=useInView(parentRef);const isReducedMotion=useReducedMotion();useAnimationFrame(t=>{if(isCanvas||!transformRef.current||!animateToValue||isReducedMotion){return;}/**\n         * In case this animation is delayed from starting because we're running a bunch\n         * of other work, we want to set an initial time rather than counting from 0.\n         * That ensures that if the animation is delayed, it starts from the first frame\n         * rather than jumping.\n         */ if(initialTime.current===null){initialTime.current=t;}t=t-initialTime.current;const timeSince=prevTime.current===null?0:t-prevTime.current;let delta=timeSince*(speed/1e3);if(isHover.current){delta*=hoverFactor;}xOrY.current+=delta;xOrY.current=wrap(0,animateToValue,xOrY.current);prevTime.current=t;if(!isInView)return;/* Direction */ if(direction===\"left\"){transformRef.current.style.transform=`translateX(-${xOrY.current}px)`;}if(direction===\"right\"){transformRef.current.style.transform=`translateX(${xOrY.current}px)`;}if(direction===\"top\"){transformRef.current.style.transform=`translateY(-${xOrY.current}px)`;}if(direction===\"bottom\"){transformRef.current.style.transform=`translateY(${xOrY.current}px)`;}});/* Fades */ const fadeDirection=isHorizontal?\"to right\":\"to bottom\";const fadeWidthStart=fadeWidth/2;const fadeWidthEnd=100-fadeWidth/2;const fadeInsetStart=clamp(fadeInset,0,fadeWidthStart);const fadeInsetEnd=100-fadeInset;const fadeMask=`linear-gradient(${fadeDirection}, rgba(0, 0, 0, ${fadeAlpha}) ${fadeInsetStart}%, rgba(0, 0, 0, 1) ${fadeWidthStart}%, rgba(0, 0, 0, 1) ${fadeWidthEnd}%, rgba(0, 0, 0, ${fadeAlpha}) ${fadeInsetEnd}%)`;/* Empty state */ if(!hasChildren){return /*#__PURE__*/ _jsxs(\"section\",{style:placeholderStyles,children:[/*#__PURE__*/ _jsx(\"div\",{style:emojiStyles,children:\"\u2728\"}),/*#__PURE__*/ _jsx(\"p\",{style:titleStyles,children:\"Connect to Content\"}),/*#__PURE__*/ _jsx(\"p\",{style:subtitleStyles,children:\"Add layers or components to infinitely loop on your page.\"})]});}return /*#__PURE__*/ _jsx(\"section\",{style:{...containerStyle,opacity:opacity,WebkitMaskImage:fadeContent?fadeMask:undefined,MozMaskImage:fadeContent?fadeMask:undefined,maskImage:fadeContent?fadeMask:undefined,overflow:overflow?\"visible\":\"hidden\",padding:paddingValue},ref:parentRef,children:/*#__PURE__*/ _jsxs(\"ul\",{style:{...containerStyle,gap:gap,top:direction===\"bottom\"&&-animateToValue,left:direction===\"right\"&&-animateToValue,placeItems:alignment,position:\"relative\",flexDirection:isHorizontal?\"row\":\"column\",willChange:\"transform\",...style},ref:transformRef,onMouseEnter:()=>isHover.current=true,onMouseLeave:()=>isHover.current=false,children:[clonedChildren,dupedChildren]})});};/* Default Properties */ Ticker.defaultProps={gap:10,padding:10,sizingOptions:{widthType:true,heightType:true},fadeOptions:{fadeContent:true,overflow:false,fadeWidth:25,fadeAlpha:0,fadeInset:0},direction:true};/* Property Controls */ addPropertyControls(Ticker,{slots:{type:ControlType.Array,title:\"Children\",control:{type:ControlType.ComponentInstance}},speed:{type:ControlType.Number,title:\"Speed\",min:0,max:1e3,defaultValue:100,unit:\"%\",displayStepper:true,step:5},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"left\",\"right\",\"top\",\"bottom\"],optionIcons:[\"direction-left\",\"direction-right\",\"direction-up\",\"direction-down\",],optionTitles:[\"Left\",\"Right\",\"Top\",\"Bottom\"],defaultValue:\"left\",displaySegmentedControl:true},alignment:{type:ControlType.Enum,title:\"Align\",options:[\"flex-start\",\"center\",\"flex-end\"],optionIcons:{direction:{right:[\"align-top\",\"align-middle\",\"align-bottom\"],left:[\"align-top\",\"align-middle\",\"align-bottom\"],top:[\"align-left\",\"align-center\",\"align-right\"],bottom:[\"align-left\",\"align-center\",\"align-right\"]}},defaultValue:\"center\",displaySegmentedControl:true},gap:{type:ControlType.Number,title:\"Gap\"},padding:{title:\"Padding\",type:ControlType.FusedNumber,toggleKey:\"paddingPerSide\",toggleTitles:[\"Padding\",\"Padding per side\"],valueKeys:[\"paddingTop\",\"paddingRight\",\"paddingBottom\",\"paddingLeft\",],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0},sizingOptions:{type:ControlType.Object,title:\"Sizing\",controls:{widthType:{type:ControlType.Boolean,title:\"Width\",enabledTitle:\"Auto\",disabledTitle:\"Stretch\",defaultValue:true},heightType:{type:ControlType.Boolean,title:\"Height\",enabledTitle:\"Auto\",disabledTitle:\"Stretch\",defaultValue:true}}},fadeOptions:{type:ControlType.Object,title:\"Clipping\",controls:{fadeContent:{type:ControlType.Boolean,title:\"Fade\",defaultValue:true},overflow:{type:ControlType.Boolean,title:\"Overflow\",enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:false,hidden(props){return props.fadeContent===true;}},fadeWidth:{type:ControlType.Number,title:\"Width\",defaultValue:25,min:0,max:100,unit:\"%\",hidden(props){return props.fadeContent===false;}},fadeInset:{type:ControlType.Number,title:\"Inset\",defaultValue:0,min:0,max:100,unit:\"%\",hidden(props){return props.fadeContent===false;}},fadeAlpha:{type:ControlType.Number,title:\"Opacity\",defaultValue:0,min:0,max:1,step:.05,hidden(props){return props.fadeContent===false;}}}},hoverFactor:{type:ControlType.Number,title:\"Hover\",min:0,max:1,unit:\"x\",defaultValue:.5,step:.1,displayStepper:true,description:\"Slows down the speed while you are hovering.\"}});/* Placeholder Styles */ const containerStyle={display:\"flex\",width:\"100%\",height:\"100%\",maxWidth:\"100%\",maxHeight:\"100%\",placeItems:\"center\",margin:0,padding:0,listStyleType:\"none\",textIndent:\"none\"};/* Styles */ const placeholderStyles={display:\"flex\",width:\"100%\",height:\"100%\",placeContent:\"center\",placeItems:\"center\",flexDirection:\"column\",color:\"#96F\",background:\"rgba(136, 85, 255, 0.1)\",fontSize:11,overflow:\"hidden\",padding:\"20px 20px 30px 20px\"};const emojiStyles={fontSize:32,marginBottom:10};const titleStyles={margin:0,marginBottom:10,fontWeight:600,textAlign:\"center\"};const subtitleStyles={margin:0,opacity:.7,maxWidth:150,lineHeight:1.5,textAlign:\"center\"};/* Clamp function, used for fadeInset */ const clamp=(num,min,max)=>Math.min(Math.max(num,min),max);\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Ticker\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"400\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicHeight\":\"200\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"*\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Ticker.map", "var e=\"undefined\"!==typeof globalThis?globalThis:\"undefined\"!==typeof self?self:global;var t={};(function webpackUniversalModuleDefinition(e,n){t=n()})(0,(function(){return function(e){var t={};function __webpack_require__(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:false,exports:{}};e[n].call(i.exports,i,i.exports,__webpack_require__);i.l=true;return i.exports}__webpack_require__.m=e;__webpack_require__.c=t;__webpack_require__.d=function(e,t,n){__webpack_require__.o(e,t)||Object.defineProperty(e,t,{enumerable:true,get:n})};__webpack_require__.r=function(e){\"undefined\"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"});Object.defineProperty(e,\"__esModule\",{value:true})};__webpack_require__.t=function(e,t){1&t&&(e=__webpack_require__(e));if(8&t)return e;if(4&t&&\"object\"===typeof e&&e&&e.__esModule)return e;var n=Object.create(null);__webpack_require__.r(n);Object.defineProperty(n,\"default\",{enumerable:true,value:e});if(2&t&&\"string\"!=typeof e)for(var i in e)__webpack_require__.d(n,i,function(t){return e[t]}.bind(null,i));return n};__webpack_require__.n=function(e){var t=e&&e.__esModule?function getDefault(){return e.default}:function getModuleExports(){return e};__webpack_require__.d(t,\"a\",t);return t};__webpack_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};__webpack_require__.p=\"\";return __webpack_require__(__webpack_require__.s=21)}([function(t,n){var i={};t.exports=i;(function(){i._nextId=0;i._seed=0;i._nowStartTime=+new Date;i._warnedOnce={};i._decomp=null;\n/**\n         * Extends the object in the first argument using the object in the second argument.\n         * @method extend\n         * @param {} obj\n         * @param {boolean} deep\n         * @return {} obj extended\n         */i.extend=function(e,t){var n,o;if(\"boolean\"===typeof t){n=2;o=t}else{n=1;o=true}for(var r=n;r<arguments.length;r++){var a=arguments[r];if(a)for(var s in a)if(o&&a[s]&&a[s].constructor===Object)if(e[s]&&e[s].constructor!==Object)e[s]=a[s];else{e[s]=e[s]||{};i.extend(e[s],o,a[s])}else e[s]=a[s]}return e};\n/**\n         * Creates a new clone of the object, if deep is true references will also be cloned.\n         * @method clone\n         * @param {} obj\n         * @param {bool} deep\n         * @return {} obj cloned\n         */i.clone=function(e,t){return i.extend({},t,e)};\n/**\n         * Returns the list of keys for the given object.\n         * @method keys\n         * @param {} obj\n         * @return {string[]} keys\n         */i.keys=function(e){if(Object.keys)return Object.keys(e);var t=[];for(var n in e)t.push(n);return t};\n/**\n         * Returns the list of values for the given object.\n         * @method values\n         * @param {} obj\n         * @return {array} Array of the objects property values\n         */i.values=function(e){var t=[];if(Object.keys){var n=Object.keys(e);for(var i=0;i<n.length;i++)t.push(e[n[i]]);return t}for(var o in e)t.push(e[o]);return t};\n/**\n         * Gets a value from `base` relative to the `path` string.\n         * @method get\n         * @param {} obj The base object\n         * @param {string} path The path relative to `base`, e.g. 'Foo.Bar.baz'\n         * @param {number} [begin] Path slice begin\n         * @param {number} [end] Path slice end\n         * @return {} The object at the given path\n         */i.get=function(e,t,n,i){t=t.split(\".\").slice(n,i);for(var o=0;o<t.length;o+=1)e=e[t[o]];return e};\n/**\n         * Sets a value on `base` relative to the given `path` string.\n         * @method set\n         * @param {} obj The base object\n         * @param {string} path The path relative to `base`, e.g. 'Foo.Bar.baz'\n         * @param {} val The value to set\n         * @param {number} [begin] Path slice begin\n         * @param {number} [end] Path slice end\n         * @return {} Pass through `val` for chaining\n         */i.set=function(e,t,n,o,r){var a=t.split(\".\").slice(o,r);i.get(e,t,0,-1)[a[a.length-1]]=n;return n};\n/**\n         * Shuffles the given array in-place.\n         * The function uses a seeded random generator.\n         * @method shuffle\n         * @param {array} array\n         * @return {array} array shuffled randomly\n         */i.shuffle=function(e){for(var t=e.length-1;t>0;t--){var n=Math.floor(i.random()*(t+1));var o=e[t];e[t]=e[n];e[n]=o}return e};\n/**\n         * Randomly chooses a value from a list with equal probability.\n         * The function uses a seeded random generator.\n         * @method choose\n         * @param {array} choices\n         * @return {object} A random choice object from the array\n         */i.choose=function(e){return e[Math.floor(i.random()*e.length)]};\n/**\n         * Returns true if the object is a HTMLElement, otherwise false.\n         * @method isElement\n         * @param {object} obj\n         * @return {boolean} True if the object is a HTMLElement, otherwise false\n         */i.isElement=function(e){return\"undefined\"!==typeof HTMLElement?e instanceof HTMLElement:!!(e&&e.nodeType&&e.nodeName)};\n/**\n         * Returns true if the object is an array.\n         * @method isArray\n         * @param {object} obj\n         * @return {boolean} True if the object is an array, otherwise false\n         */i.isArray=function(e){return\"[object Array]\"===Object.prototype.toString.call(e)};\n/**\n         * Returns true if the object is a function.\n         * @method isFunction\n         * @param {object} obj\n         * @return {boolean} True if the object is a function, otherwise false\n         */i.isFunction=function(e){return\"function\"===typeof e};\n/**\n         * Returns true if the object is a plain object.\n         * @method isPlainObject\n         * @param {object} obj\n         * @return {boolean} True if the object is a plain object, otherwise false\n         */i.isPlainObject=function(e){return\"object\"===typeof e&&e.constructor===Object};\n/**\n         * Returns true if the object is a string.\n         * @method isString\n         * @param {object} obj\n         * @return {boolean} True if the object is a string, otherwise false\n         */i.isString=function(e){return\"[object String]\"===toString.call(e)};\n/**\n         * Returns the given value clamped between a minimum and maximum value.\n         * @method clamp\n         * @param {number} value\n         * @param {number} min\n         * @param {number} max\n         * @return {number} The value clamped between min and max inclusive\n         */i.clamp=function(e,t,n){return e<t?t:e>n?n:e};\n/**\n         * Returns the sign of the given value.\n         * @method sign\n         * @param {number} value\n         * @return {number} -1 if negative, +1 if 0 or positive\n         */i.sign=function(e){return e<0?-1:1};i.now=function(){if(\"undefined\"!==typeof window&&window.performance){if(window.performance.now)return window.performance.now();if(window.performance.webkitNow)return window.performance.webkitNow()}return Date.now?Date.now():new Date-i._nowStartTime};\n/**\n         * Returns a random value between a minimum and a maximum value inclusive.\n         * The function uses a seeded random generator.\n         * @method random\n         * @param {number} min\n         * @param {number} max\n         * @return {number} A random number between min and max inclusive\n         */i.random=function(e,t){e=\"undefined\"!==typeof e?e:0;t=\"undefined\"!==typeof t?t:1;return e+_seededRandom()*(t-e)};var _seededRandom=function(){i._seed=(9301*i._seed+49297)%233280;return i._seed/233280};\n/**\n         * Converts a CSS hex colour string into an integer.\n         * @method colorToNumber\n         * @param {string} colorString\n         * @return {number} An integer representing the CSS hex string\n         */i.colorToNumber=function(e){e=e.replace(\"#\",\"\");3==e.length&&(e=e.charAt(0)+e.charAt(0)+e.charAt(1)+e.charAt(1)+e.charAt(2)+e.charAt(2));return parseInt(e,16)};\n/**\n         * The console logging level to use, where each level includes all levels above and excludes the levels below.\n         * The default level is 'debug' which shows all console messages.  \n         *\n         * Possible level values are:\n         * - 0 = None\n         * - 1 = Debug\n         * - 2 = Info\n         * - 3 = Warn\n         * - 4 = Error\n         * @property Common.logLevel\n         * @type {Number}\n         * @default 1\n         */i.logLevel=1;\n/**\n         * Shows a `console.log` message only if the current `Common.logLevel` allows it.\n         * The message will be prefixed with 'matter-js' to make it easily identifiable.\n         * @method log\n         * @param ...objs {} The objects to log.\n         */i.log=function(){console&&i.logLevel>0&&i.logLevel<=3&&console.log.apply(console,[\"matter-js:\"].concat(Array.prototype.slice.call(arguments)))};\n/**\n         * Shows a `console.info` message only if the current `Common.logLevel` allows it.\n         * The message will be prefixed with 'matter-js' to make it easily identifiable.\n         * @method info\n         * @param ...objs {} The objects to log.\n         */i.info=function(){console&&i.logLevel>0&&i.logLevel<=2&&console.info.apply(console,[\"matter-js:\"].concat(Array.prototype.slice.call(arguments)))};\n/**\n         * Shows a `console.warn` message only if the current `Common.logLevel` allows it.\n         * The message will be prefixed with 'matter-js' to make it easily identifiable.\n         * @method warn\n         * @param ...objs {} The objects to log.\n         */i.warn=function(){console&&i.logLevel>0&&i.logLevel<=3&&console.warn.apply(console,[\"matter-js:\"].concat(Array.prototype.slice.call(arguments)))};\n/**\n         * Uses `Common.warn` to log the given message one time only.\n         * @method warnOnce\n         * @param ...objs {} The objects to log.\n         */i.warnOnce=function(){var e=Array.prototype.slice.call(arguments).join(\" \");if(!i._warnedOnce[e]){i.warn(e);i._warnedOnce[e]=true}};\n/**\n         * Shows a deprecated console warning when the function on the given object is called.\n         * The target function will be replaced with a new function that first shows the warning\n         * and then calls the original function.\n         * @method deprecated\n         * @param {object} obj The object or module\n         * @param {string} name The property name of the function on obj\n         * @param {string} warning The one-time message to show if the function is called\n         */i.deprecated=function(e,t,n){e[t]=i.chain((function(){i.warnOnce(\"\uD83D\uDD05 deprecated \uD83D\uDD05\",n)}),e[t])};i.nextId=function(){return i._nextId++};\n/**\n         * A cross browser compatible indexOf implementation.\n         * @method indexOf\n         * @param {array} haystack\n         * @param {object} needle\n         * @return {number} The position of needle in haystack, otherwise -1.\n         */i.indexOf=function(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0;n<e.length;n++)if(e[n]===t)return n;return-1};\n/**\n         * A cross browser compatible array map implementation.\n         * @method map\n         * @param {array} list\n         * @param {function} func\n         * @return {array} Values from list transformed by func.\n         */i.map=function(e,t){if(e.map)return e.map(t);var n=[];for(var i=0;i<e.length;i+=1)n.push(t(e[i]));return n};\n/**\n         * Takes a directed graph and returns the partially ordered set of vertices in topological order.\n         * Circular dependencies are allowed.\n         * @method topologicalSort\n         * @param {object} graph\n         * @return {array} Partially ordered set of vertices in topological order.\n         */i.topologicalSort=function(e){var t=[],n=[],o=[];for(var r in e)n[r]||o[r]||i._topologicalSort(r,n,o,e,t);return t};i._topologicalSort=function(e,t,n,o,r){var a=o[e]||[];n[e]=true;for(var s=0;s<a.length;s+=1){var l=a[s];n[l]||(t[l]||i._topologicalSort(l,t,n,o,r))}n[e]=false;t[e]=true;r.push(e)};\n/**\n         * Takes _n_ functions as arguments and returns a new function that calls them in order.\n         * The arguments applied when calling the new function will also be applied to every function passed.\n         * The value of `this` refers to the last value returned in the chain that was not `undefined`.\n         * Therefore if a passed function does not return a value, the previously returned value is maintained.\n         * After all passed functions have been called the new function returns the last returned value (if any).\n         * If any of the passed functions are a chain, then the chain will be flattened.\n         * @method chain\n         * @param ...funcs {function} The functions to chain.\n         * @return {function} A new function that calls the passed functions in order.\n         */i.chain=function(){var e=[];for(var t=0;t<arguments.length;t+=1){var n=arguments[t];n._chained?e.push.apply(e,n._chained):e.push(n)}var chain=function(){var t,n=new Array(arguments.length);for(var i=0,o=arguments.length;i<o;i++)n[i]=arguments[i];for(i=0;i<e.length;i+=1){var r=e[i].apply(t,n);\"undefined\"!==typeof r&&(t=r)}return t};chain._chained=e;return chain};\n/**\n         * Chains a function to excute before the original function on the given `path` relative to `base`.\n         * See also docs for `Common.chain`.\n         * @method chainPathBefore\n         * @param {} base The base object\n         * @param {string} path The path relative to `base`\n         * @param {function} func The function to chain before the original\n         * @return {function} The chained function that replaced the original\n         */i.chainPathBefore=function(e,t,n){return i.set(e,t,i.chain(n,i.get(e,t)))};\n/**\n         * Chains a function to excute after the original function on the given `path` relative to `base`.\n         * See also docs for `Common.chain`.\n         * @method chainPathAfter\n         * @param {} base The base object\n         * @param {string} path The path relative to `base`\n         * @param {function} func The function to chain after the original\n         * @return {function} The chained function that replaced the original\n         */i.chainPathAfter=function(e,t,n){return i.set(e,t,i.chain(i.get(e,t),n))};\n/**\n         * Provide the [poly-decomp](https://github.com/schteppe/poly-decomp.js) library module to enable\n         * concave vertex decomposition support when using `Bodies.fromVertices` e.g. `Common.setDecomp(require('poly-decomp'))`.\n         * @method setDecomp\n         * @param {} decomp The [poly-decomp](https://github.com/schteppe/poly-decomp.js) library module.\n         */i.setDecomp=function(e){i._decomp=e};i.getDecomp=function(){var t=i._decomp;try{t||\"undefined\"===typeof window||(t=window.decomp);t||\"undefined\"===typeof e||(t=e.decomp)}catch(e){t=null}return t}})()},function(e,t){var n={};e.exports=n;(function(){\n/**\n         * Creates a new axis-aligned bounding box (AABB) for the given vertices.\n         * @method create\n         * @param {vertices} vertices\n         * @return {bounds} A new bounds object\n         */\nn.create=function(e){var t={min:{x:0,y:0},max:{x:0,y:0}};e&&n.update(t,e);return t};\n/**\n         * Updates bounds using the given vertices and extends the bounds given a velocity.\n         * @method update\n         * @param {bounds} bounds\n         * @param {vertices} vertices\n         * @param {vector} velocity\n         */n.update=function(e,t,n){e.min.x=Infinity;e.max.x=-Infinity;e.min.y=Infinity;e.max.y=-Infinity;for(var i=0;i<t.length;i++){var o=t[i];o.x>e.max.x&&(e.max.x=o.x);o.x<e.min.x&&(e.min.x=o.x);o.y>e.max.y&&(e.max.y=o.y);o.y<e.min.y&&(e.min.y=o.y)}if(n){n.x>0?e.max.x+=n.x:e.min.x+=n.x;n.y>0?e.max.y+=n.y:e.min.y+=n.y}};\n/**\n         * Returns true if the bounds contains the given point.\n         * @method contains\n         * @param {bounds} bounds\n         * @param {vector} point\n         * @return {boolean} True if the bounds contain the point, otherwise false\n         */n.contains=function(e,t){return t.x>=e.min.x&&t.x<=e.max.x&&t.y>=e.min.y&&t.y<=e.max.y};\n/**\n         * Returns true if the two bounds intersect.\n         * @method overlaps\n         * @param {bounds} boundsA\n         * @param {bounds} boundsB\n         * @return {boolean} True if the bounds overlap, otherwise false\n         */n.overlaps=function(e,t){return e.min.x<=t.max.x&&e.max.x>=t.min.x&&e.max.y>=t.min.y&&e.min.y<=t.max.y};\n/**\n         * Translates the bounds by the given vector.\n         * @method translate\n         * @param {bounds} bounds\n         * @param {vector} vector\n         */n.translate=function(e,t){e.min.x+=t.x;e.max.x+=t.x;e.min.y+=t.y;e.max.y+=t.y};\n/**\n         * Shifts the bounds to the given position.\n         * @method shift\n         * @param {bounds} bounds\n         * @param {vector} position\n         */n.shift=function(e,t){var n=e.max.x-e.min.x,i=e.max.y-e.min.y;e.min.x=t.x;e.max.x=t.x+n;e.min.y=t.y;e.max.y=t.y+i}})()},function(e,t){var n={};e.exports=n;(function(){\n/**\n         * Creates a new vector.\n         * @method create\n         * @param {number} x\n         * @param {number} y\n         * @return {vector} A new vector\n         */\nn.create=function(e,t){return{x:e||0,y:t||0}};\n/**\n         * Returns a new vector with `x` and `y` copied from the given `vector`.\n         * @method clone\n         * @param {vector} vector\n         * @return {vector} A new cloned vector\n         */n.clone=function(e){return{x:e.x,y:e.y}};\n/**\n         * Returns the magnitude (length) of a vector.\n         * @method magnitude\n         * @param {vector} vector\n         * @return {number} The magnitude of the vector\n         */n.magnitude=function(e){return Math.sqrt(e.x*e.x+e.y*e.y)};\n/**\n         * Returns the magnitude (length) of a vector (therefore saving a `sqrt` operation).\n         * @method magnitudeSquared\n         * @param {vector} vector\n         * @return {number} The squared magnitude of the vector\n         */n.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y};\n/**\n         * Rotates the vector about (0, 0) by specified angle.\n         * @method rotate\n         * @param {vector} vector\n         * @param {number} angle\n         * @param {vector} [output]\n         * @return {vector} The vector rotated about (0, 0)\n         */n.rotate=function(e,t,n){var i=Math.cos(t),o=Math.sin(t);n||(n={});var r=e.x*i-e.y*o;n.y=e.x*o+e.y*i;n.x=r;return n};\n/**\n         * Rotates the vector about a specified point by specified angle.\n         * @method rotateAbout\n         * @param {vector} vector\n         * @param {number} angle\n         * @param {vector} point\n         * @param {vector} [output]\n         * @return {vector} A new vector rotated about the point\n         */n.rotateAbout=function(e,t,n,i){var o=Math.cos(t),r=Math.sin(t);i||(i={});var a=n.x+((e.x-n.x)*o-(e.y-n.y)*r);i.y=n.y+((e.x-n.x)*r+(e.y-n.y)*o);i.x=a;return i};\n/**\n         * Normalises a vector (such that its magnitude is `1`).\n         * @method normalise\n         * @param {vector} vector\n         * @return {vector} A new vector normalised\n         */n.normalise=function(e){var t=n.magnitude(e);return 0===t?{x:0,y:0}:{x:e.x/t,y:e.y/t}};\n/**\n         * Returns the dot-product of two vectors.\n         * @method dot\n         * @param {vector} vectorA\n         * @param {vector} vectorB\n         * @return {number} The dot product of the two vectors\n         */n.dot=function(e,t){return e.x*t.x+e.y*t.y};\n/**\n         * Returns the cross-product of two vectors.\n         * @method cross\n         * @param {vector} vectorA\n         * @param {vector} vectorB\n         * @return {number} The cross product of the two vectors\n         */n.cross=function(e,t){return e.x*t.y-e.y*t.x};\n/**\n         * Returns the cross-product of three vectors.\n         * @method cross3\n         * @param {vector} vectorA\n         * @param {vector} vectorB\n         * @param {vector} vectorC\n         * @return {number} The cross product of the three vectors\n         */n.cross3=function(e,t,n){return(t.x-e.x)*(n.y-e.y)-(t.y-e.y)*(n.x-e.x)};\n/**\n         * Adds the two vectors.\n         * @method add\n         * @param {vector} vectorA\n         * @param {vector} vectorB\n         * @param {vector} [output]\n         * @return {vector} A new vector of vectorA and vectorB added\n         */n.add=function(e,t,n){n||(n={});n.x=e.x+t.x;n.y=e.y+t.y;return n};\n/**\n         * Subtracts the two vectors.\n         * @method sub\n         * @param {vector} vectorA\n         * @param {vector} vectorB\n         * @param {vector} [output]\n         * @return {vector} A new vector of vectorA and vectorB subtracted\n         */n.sub=function(e,t,n){n||(n={});n.x=e.x-t.x;n.y=e.y-t.y;return n};\n/**\n         * Multiplies a vector and a scalar.\n         * @method mult\n         * @param {vector} vector\n         * @param {number} scalar\n         * @return {vector} A new vector multiplied by scalar\n         */n.mult=function(e,t){return{x:e.x*t,y:e.y*t}};\n/**\n         * Divides a vector and a scalar.\n         * @method div\n         * @param {vector} vector\n         * @param {number} scalar\n         * @return {vector} A new vector divided by scalar\n         */n.div=function(e,t){return{x:e.x/t,y:e.y/t}};\n/**\n         * Returns the perpendicular vector. Set `negate` to true for the perpendicular in the opposite direction.\n         * @method perp\n         * @param {vector} vector\n         * @param {bool} [negate=false]\n         * @return {vector} The perpendicular vector\n         */n.perp=function(e,t){t=true===t?-1:1;return{x:t*-e.y,y:t*e.x}};\n/**\n         * Negates both components of a vector such that it points in the opposite direction.\n         * @method neg\n         * @param {vector} vector\n         * @return {vector} The negated vector\n         */n.neg=function(e){return{x:-e.x,y:-e.y}};\n/**\n         * Returns the angle between the vector `vectorB - vectorA` and the x-axis in radians.\n         * @method angle\n         * @param {vector} vectorA\n         * @param {vector} vectorB\n         * @return {number} The angle in radians\n         */n.angle=function(e,t){return Math.atan2(t.y-e.y,t.x-e.x)};\n/**\n         * Temporary vector pool (not thread-safe).\n         * @property _temp\n         * @type {vector[]}\n         * @private\n         */n._temp=[n.create(),n.create(),n.create(),n.create(),n.create(),n.create()]})()},function(e,t,n){var i={};e.exports=i;var o=n(2);var r=n(0);(function(){\n/**\n         * Creates a new set of `Matter.Body` compatible vertices.\n         * The `points` argument accepts an array of `Matter.Vector` points orientated around the origin `(0, 0)`, for example:\n         *\n         *     [{ x: 0, y: 0 }, { x: 25, y: 50 }, { x: 50, y: 0 }]\n         *\n         * The `Vertices.create` method returns a new array of vertices, which are similar to Matter.Vector objects,\n         * but with some additional references required for efficient collision detection routines.\n         *\n         * Vertices must be specified in clockwise order.\n         *\n         * Note that the `body` argument is not optional, a `Matter.Body` reference must be provided.\n         *\n         * @method create\n         * @param {vector[]} points\n         * @param {body} body\n         */\ni.create=function(e,t){var n=[];for(var i=0;i<e.length;i++){var o=e[i],r={x:o.x,y:o.y,index:i,body:t,isInternal:false};n.push(r)}return n};\n/**\n         * Parses a string containing ordered x y pairs separated by spaces (and optionally commas), \n         * into a `Matter.Vertices` object for the given `Matter.Body`.\n         * For parsing SVG paths, see `Svg.pathToVertices`.\n         * @method fromPath\n         * @param {string} path\n         * @param {body} body\n         * @return {vertices} vertices\n         */i.fromPath=function(e,t){var n=/L?\\s*([-\\d.e]+)[\\s,]*([-\\d.e]+)*/gi,o=[];e.replace(n,(function(e,t,n){o.push({x:parseFloat(t),y:parseFloat(n)})}));return i.create(o,t)};\n/**\n         * Returns the centre (centroid) of the set of vertices.\n         * @method centre\n         * @param {vertices} vertices\n         * @return {vector} The centre point\n         */i.centre=function(e){var t,n,r,a=i.area(e,true),s={x:0,y:0};for(var l=0;l<e.length;l++){r=(l+1)%e.length;t=o.cross(e[l],e[r]);n=o.mult(o.add(e[l],e[r]),t);s=o.add(s,n)}return o.div(s,6*a)};\n/**\n         * Returns the average (mean) of the set of vertices.\n         * @method mean\n         * @param {vertices} vertices\n         * @return {vector} The average point\n         */i.mean=function(e){var t={x:0,y:0};for(var n=0;n<e.length;n++){t.x+=e[n].x;t.y+=e[n].y}return o.div(t,e.length)};\n/**\n         * Returns the area of the set of vertices.\n         * @method area\n         * @param {vertices} vertices\n         * @param {bool} signed\n         * @return {number} The area\n         */i.area=function(e,t){var n=0,i=e.length-1;for(var o=0;o<e.length;o++){n+=(e[i].x-e[o].x)*(e[i].y+e[o].y);i=o}return t?n/2:Math.abs(n)/2};\n/**\n         * Returns the moment of inertia (second moment of area) of the set of vertices given the total mass.\n         * @method inertia\n         * @param {vertices} vertices\n         * @param {number} mass\n         * @return {number} The polygon's moment of inertia\n         */i.inertia=function(e,t){var n,i,r=0,a=0,s=e;for(var l=0;l<s.length;l++){i=(l+1)%s.length;n=Math.abs(o.cross(s[i],s[l]));r+=n*(o.dot(s[i],s[i])+o.dot(s[i],s[l])+o.dot(s[l],s[l]));a+=n}return t/6*(r/a)};\n/**\n         * Translates the set of vertices in-place.\n         * @method translate\n         * @param {vertices} vertices\n         * @param {vector} vector\n         * @param {number} scalar\n         */i.translate=function(e,t,n){n=\"undefined\"!==typeof n?n:1;var i,o=e.length,r=t.x*n,a=t.y*n;for(i=0;i<o;i++){e[i].x+=r;e[i].y+=a}return e};\n/**\n         * Rotates the set of vertices in-place.\n         * @method rotate\n         * @param {vertices} vertices\n         * @param {number} angle\n         * @param {vector} point\n         */i.rotate=function(e,t,n){if(0!==t){var i,o,r,a,s=Math.cos(t),l=Math.sin(t),c=n.x,u=n.y,f=e.length;for(a=0;a<f;a++){i=e[a];o=i.x-c;r=i.y-u;i.x=c+(o*s-r*l);i.y=u+(o*l+r*s)}return e}};\n/**\n         * Returns `true` if the `point` is inside the set of `vertices`.\n         * @method contains\n         * @param {vertices} vertices\n         * @param {vector} point\n         * @return {boolean} True if the vertices contains point, otherwise false\n         */i.contains=function(e,t){var n,i=t.x,o=t.y,r=e.length,a=e[r-1];for(var s=0;s<r;s++){n=e[s];if((i-a.x)*(n.y-a.y)+(o-a.y)*(a.x-n.x)>0)return false;a=n}return true};\n/**\n         * Scales the vertices from a point (default is centre) in-place.\n         * @method scale\n         * @param {vertices} vertices\n         * @param {number} scaleX\n         * @param {number} scaleY\n         * @param {vector} point\n         */i.scale=function(e,t,n,r){if(1===t&&1===n)return e;r=r||i.centre(e);var a,s;for(var l=0;l<e.length;l++){a=e[l];s=o.sub(a,r);e[l].x=r.x+s.x*t;e[l].y=r.y+s.y*n}return e};\n/**\n         * Chamfers a set of vertices by giving them rounded corners, returns a new set of vertices.\n         * The radius parameter is a single number or an array to specify the radius for each vertex.\n         * @method chamfer\n         * @param {vertices} vertices\n         * @param {number[]} radius\n         * @param {number} quality\n         * @param {number} qualityMin\n         * @param {number} qualityMax\n         */i.chamfer=function(e,t,n,i,a){t=\"number\"===typeof t?[t]:t||[8];n=\"undefined\"!==typeof n?n:-1;i=i||2;a=a||14;var s=[];for(var l=0;l<e.length;l++){var c=e[l-1>=0?l-1:e.length-1],u=e[l],f=e[(l+1)%e.length],d=t[l<t.length?l:t.length-1];if(0!==d){var p=o.normalise({x:u.y-c.y,y:c.x-u.x});var v=o.normalise({x:f.y-u.y,y:u.x-f.x});var y=Math.sqrt(2*Math.pow(d,2)),m=o.mult(r.clone(p),d),g=o.normalise(o.mult(o.add(p,v),.5)),x=o.sub(u,o.mult(g,y));var h=n;-1===n&&(h=1.75*Math.pow(d,.32));h=r.clamp(h,i,a);h%2===1&&(h+=1);var b=Math.acos(o.dot(p,v)),S=b/h;for(var w=0;w<h;w++)s.push(o.add(o.rotate(m,S*w),x))}else s.push(u)}return s};\n/**\n         * Sorts the input vertices into clockwise order in place.\n         * @method clockwiseSort\n         * @param {vertices} vertices\n         * @return {vertices} vertices\n         */i.clockwiseSort=function(e){var t=i.mean(e);e.sort((function(e,n){return o.angle(t,e)-o.angle(t,n)}));return e};\n/**\n         * Returns true if the vertices form a convex shape (vertices must be in clockwise order).\n         * @method isConvex\n         * @param {vertices} vertices\n         * @return {bool} `true` if the `vertices` are convex, `false` if not (or `null` if not computable).\n         */i.isConvex=function(e){var t,n,i,o,r=0,a=e.length;if(a<3)return null;for(t=0;t<a;t++){n=(t+1)%a;i=(t+2)%a;o=(e[n].x-e[t].x)*(e[i].y-e[n].y);o-=(e[n].y-e[t].y)*(e[i].x-e[n].x);o<0?r|=1:o>0&&(r|=2);if(3===r)return false}return 0!==r||null};\n/**\n         * Returns the convex hull of the input vertices as a new array of points.\n         * @method hull\n         * @param {vertices} vertices\n         * @return [vertex] vertices\n         */i.hull=function(e){var t,n,i=[],r=[];e=e.slice(0);e.sort((function(e,t){var n=e.x-t.x;return 0!==n?n:e.y-t.y}));for(n=0;n<e.length;n+=1){t=e[n];while(r.length>=2&&o.cross3(r[r.length-2],r[r.length-1],t)<=0)r.pop();r.push(t)}for(n=e.length-1;n>=0;n-=1){t=e[n];while(i.length>=2&&o.cross3(i[i.length-2],i[i.length-1],t)<=0)i.pop();i.push(t)}i.pop();r.pop();return i.concat(r)}})()},function(e,t,n){var i={};e.exports=i;var o=n(0);(function(){\n/**\n         * Subscribes a callback function to the given object's `eventName`.\n         * @method on\n         * @param {} object\n         * @param {string} eventNames\n         * @param {function} callback\n         */\ni.on=function(e,t,n){var i,o=t.split(\" \");for(var r=0;r<o.length;r++){i=o[r];e.events=e.events||{};e.events[i]=e.events[i]||[];e.events[i].push(n)}return n};\n/**\n         * Removes the given event callback. If no callback, clears all callbacks in `eventNames`. If no `eventNames`, clears all events.\n         * @method off\n         * @param {} object\n         * @param {string} eventNames\n         * @param {function} callback\n         */i.off=function(e,t,n){if(t){if(\"function\"===typeof t){n=t;t=o.keys(e.events).join(\" \")}var i=t.split(\" \");for(var r=0;r<i.length;r++){var a=e.events[i[r]],s=[];if(n&&a)for(var l=0;l<a.length;l++)a[l]!==n&&s.push(a[l]);e.events[i[r]]=s}}else e.events={}};\n/**\n         * Fires all the callbacks subscribed to the given object's `eventName`, in the order they subscribed, if any.\n         * @method trigger\n         * @param {} object\n         * @param {string} eventNames\n         * @param {} event\n         */i.trigger=function(e,t,n){var i,r,a,s;var l=e.events;if(l&&o.keys(l).length>0){n||(n={});i=t.split(\" \");for(var c=0;c<i.length;c++){r=i[c];a=l[r];if(a){s=o.clone(n,false);s.name=r;s.source=e;for(var u=0;u<a.length;u++)a[u].apply(e,[s])}}}}})()},function(e,t,n){var i={};e.exports=i;var o=n(4);var r=n(0);var a=n(1);var s=n(6);(function(){\n/**\n         * Creates a new composite. The options parameter is an object that specifies any properties you wish to override the defaults.\n         * See the properites section below for detailed information on what you can pass via the `options` object.\n         * @method create\n         * @param {} [options]\n         * @return {composite} A new composite\n         */\ni.create=function(e){return r.extend({id:r.nextId(),type:\"composite\",parent:null,isModified:false,bodies:[],constraints:[],composites:[],label:\"Composite\",plugin:{},cache:{allBodies:null,allConstraints:null,allComposites:null}},e)};\n/**\n         * Sets the composite's `isModified` flag. \n         * If `updateParents` is true, all parents will be set (default: false).\n         * If `updateChildren` is true, all children will be set (default: false).\n         * @private\n         * @method setModified\n         * @param {composite} composite\n         * @param {boolean} isModified\n         * @param {boolean} [updateParents=false]\n         * @param {boolean} [updateChildren=false]\n         */i.setModified=function(e,t,n,o){e.isModified=t;if(t&&e.cache){e.cache.allBodies=null;e.cache.allConstraints=null;e.cache.allComposites=null}n&&e.parent&&i.setModified(e.parent,t,n,o);if(o)for(var r=0;r<e.composites.length;r++){var a=e.composites[r];i.setModified(a,t,n,o)}};\n/**\n         * Generic single or multi-add function. Adds a single or an array of body(s), constraint(s) or composite(s) to the given composite.\n         * Triggers `beforeAdd` and `afterAdd` events on the `composite`.\n         * @method add\n         * @param {composite} composite\n         * @param {object|array} object A single or an array of body(s), constraint(s) or composite(s)\n         * @return {composite} The original composite with the objects added\n         */i.add=function(e,t){var n=[].concat(t);o.trigger(e,\"beforeAdd\",{object:t});for(var a=0;a<n.length;a++){var s=n[a];switch(s.type){case\"body\":if(s.parent!==s){r.warn(\"Composite.add: skipped adding a compound body part (you must add its parent instead)\");break}i.addBody(e,s);break;case\"constraint\":i.addConstraint(e,s);break;case\"composite\":i.addComposite(e,s);break;case\"mouseConstraint\":i.addConstraint(e,s.constraint);break}}o.trigger(e,\"afterAdd\",{object:t});return e};\n/**\n         * Generic remove function. Removes one or many body(s), constraint(s) or a composite(s) to the given composite.\n         * Optionally searching its children recursively.\n         * Triggers `beforeRemove` and `afterRemove` events on the `composite`.\n         * @method remove\n         * @param {composite} composite\n         * @param {object|array} object\n         * @param {boolean} [deep=false]\n         * @return {composite} The original composite with the objects removed\n         */i.remove=function(e,t,n){var r=[].concat(t);o.trigger(e,\"beforeRemove\",{object:t});for(var a=0;a<r.length;a++){var s=r[a];switch(s.type){case\"body\":i.removeBody(e,s,n);break;case\"constraint\":i.removeConstraint(e,s,n);break;case\"composite\":i.removeComposite(e,s,n);break;case\"mouseConstraint\":i.removeConstraint(e,s.constraint);break}}o.trigger(e,\"afterRemove\",{object:t});return e};\n/**\n         * Adds a composite to the given composite.\n         * @private\n         * @method addComposite\n         * @param {composite} compositeA\n         * @param {composite} compositeB\n         * @return {composite} The original compositeA with the objects from compositeB added\n         */i.addComposite=function(e,t){e.composites.push(t);t.parent=e;i.setModified(e,true,true,false);return e};\n/**\n         * Removes a composite from the given composite, and optionally searching its children recursively.\n         * @private\n         * @method removeComposite\n         * @param {composite} compositeA\n         * @param {composite} compositeB\n         * @param {boolean} [deep=false]\n         * @return {composite} The original compositeA with the composite removed\n         */i.removeComposite=function(e,t,n){var o=r.indexOf(e.composites,t);-1!==o&&i.removeCompositeAt(e,o);if(n)for(var a=0;a<e.composites.length;a++)i.removeComposite(e.composites[a],t,true);return e};\n/**\n         * Removes a composite from the given composite.\n         * @private\n         * @method removeCompositeAt\n         * @param {composite} composite\n         * @param {number} position\n         * @return {composite} The original composite with the composite removed\n         */i.removeCompositeAt=function(e,t){e.composites.splice(t,1);i.setModified(e,true,true,false);return e};\n/**\n         * Adds a body to the given composite.\n         * @private\n         * @method addBody\n         * @param {composite} composite\n         * @param {body} body\n         * @return {composite} The original composite with the body added\n         */i.addBody=function(e,t){e.bodies.push(t);i.setModified(e,true,true,false);return e};\n/**\n         * Removes a body from the given composite, and optionally searching its children recursively.\n         * @private\n         * @method removeBody\n         * @param {composite} composite\n         * @param {body} body\n         * @param {boolean} [deep=false]\n         * @return {composite} The original composite with the body removed\n         */i.removeBody=function(e,t,n){var o=r.indexOf(e.bodies,t);-1!==o&&i.removeBodyAt(e,o);if(n)for(var a=0;a<e.composites.length;a++)i.removeBody(e.composites[a],t,true);return e};\n/**\n         * Removes a body from the given composite.\n         * @private\n         * @method removeBodyAt\n         * @param {composite} composite\n         * @param {number} position\n         * @return {composite} The original composite with the body removed\n         */i.removeBodyAt=function(e,t){e.bodies.splice(t,1);i.setModified(e,true,true,false);return e};\n/**\n         * Adds a constraint to the given composite.\n         * @private\n         * @method addConstraint\n         * @param {composite} composite\n         * @param {constraint} constraint\n         * @return {composite} The original composite with the constraint added\n         */i.addConstraint=function(e,t){e.constraints.push(t);i.setModified(e,true,true,false);return e};\n/**\n         * Removes a constraint from the given composite, and optionally searching its children recursively.\n         * @private\n         * @method removeConstraint\n         * @param {composite} composite\n         * @param {constraint} constraint\n         * @param {boolean} [deep=false]\n         * @return {composite} The original composite with the constraint removed\n         */i.removeConstraint=function(e,t,n){var o=r.indexOf(e.constraints,t);-1!==o&&i.removeConstraintAt(e,o);if(n)for(var a=0;a<e.composites.length;a++)i.removeConstraint(e.composites[a],t,true);return e};\n/**\n         * Removes a body from the given composite.\n         * @private\n         * @method removeConstraintAt\n         * @param {composite} composite\n         * @param {number} position\n         * @return {composite} The original composite with the constraint removed\n         */i.removeConstraintAt=function(e,t){e.constraints.splice(t,1);i.setModified(e,true,true,false);return e};\n/**\n         * Removes all bodies, constraints and composites from the given composite.\n         * Optionally clearing its children recursively.\n         * @method clear\n         * @param {composite} composite\n         * @param {boolean} keepStatic\n         * @param {boolean} [deep=false]\n         */i.clear=function(e,t,n){if(n)for(var o=0;o<e.composites.length;o++)i.clear(e.composites[o],t,true);t?e.bodies=e.bodies.filter((function(e){return e.isStatic})):e.bodies.length=0;e.constraints.length=0;e.composites.length=0;i.setModified(e,true,true,false);return e};\n/**\n         * Returns all bodies in the given composite, including all bodies in its children, recursively.\n         * @method allBodies\n         * @param {composite} composite\n         * @return {body[]} All the bodies\n         */i.allBodies=function(e){if(e.cache&&e.cache.allBodies)return e.cache.allBodies;var t=[].concat(e.bodies);for(var n=0;n<e.composites.length;n++)t=t.concat(i.allBodies(e.composites[n]));e.cache&&(e.cache.allBodies=t);return t};\n/**\n         * Returns all constraints in the given composite, including all constraints in its children, recursively.\n         * @method allConstraints\n         * @param {composite} composite\n         * @return {constraint[]} All the constraints\n         */i.allConstraints=function(e){if(e.cache&&e.cache.allConstraints)return e.cache.allConstraints;var t=[].concat(e.constraints);for(var n=0;n<e.composites.length;n++)t=t.concat(i.allConstraints(e.composites[n]));e.cache&&(e.cache.allConstraints=t);return t};\n/**\n         * Returns all composites in the given composite, including all composites in its children, recursively.\n         * @method allComposites\n         * @param {composite} composite\n         * @return {composite[]} All the composites\n         */i.allComposites=function(e){if(e.cache&&e.cache.allComposites)return e.cache.allComposites;var t=[].concat(e.composites);for(var n=0;n<e.composites.length;n++)t=t.concat(i.allComposites(e.composites[n]));e.cache&&(e.cache.allComposites=t);return t};\n/**\n         * Searches the composite recursively for an object matching the type and id supplied, null if not found.\n         * @method get\n         * @param {composite} composite\n         * @param {number} id\n         * @param {string} type\n         * @return {object} The requested object, if found\n         */i.get=function(e,t,n){var o,r;switch(n){case\"body\":o=i.allBodies(e);break;case\"constraint\":o=i.allConstraints(e);break;case\"composite\":o=i.allComposites(e).concat(e);break}if(!o)return null;r=o.filter((function(e){return e.id.toString()===t.toString()}));return 0===r.length?null:r[0]};\n/**\n         * Moves the given object(s) from compositeA to compositeB (equal to a remove followed by an add).\n         * @method move\n         * @param {compositeA} compositeA\n         * @param {object[]} objects\n         * @param {compositeB} compositeB\n         * @return {composite} Returns compositeA\n         */i.move=function(e,t,n){i.remove(e,t);i.add(n,t);return e};\n/**\n         * Assigns new ids for all objects in the composite, recursively.\n         * @method rebase\n         * @param {composite} composite\n         * @return {composite} Returns composite\n         */i.rebase=function(e){var t=i.allBodies(e).concat(i.allConstraints(e)).concat(i.allComposites(e));for(var n=0;n<t.length;n++)t[n].id=r.nextId();return e};\n/**\n         * Translates all children in the composite by a given vector relative to their current positions, \n         * without imparting any velocity.\n         * @method translate\n         * @param {composite} composite\n         * @param {vector} translation\n         * @param {bool} [recursive=true]\n         */i.translate=function(e,t,n){var o=n?i.allBodies(e):e.bodies;for(var r=0;r<o.length;r++)s.translate(o[r],t);return e};\n/**\n         * Rotates all children in the composite by a given angle about the given point, without imparting any angular velocity.\n         * @method rotate\n         * @param {composite} composite\n         * @param {number} rotation\n         * @param {vector} point\n         * @param {bool} [recursive=true]\n         */i.rotate=function(e,t,n,o){var r=Math.cos(t),a=Math.sin(t),l=o?i.allBodies(e):e.bodies;for(var c=0;c<l.length;c++){var u=l[c],f=u.position.x-n.x,d=u.position.y-n.y;s.setPosition(u,{x:n.x+(f*r-d*a),y:n.y+(f*a+d*r)});s.rotate(u,t)}return e};\n/**\n         * Scales all children in the composite, including updating physical properties (mass, area, axes, inertia), from a world-space point.\n         * @method scale\n         * @param {composite} composite\n         * @param {number} scaleX\n         * @param {number} scaleY\n         * @param {vector} point\n         * @param {bool} [recursive=true]\n         */i.scale=function(e,t,n,o,r){var a=r?i.allBodies(e):e.bodies;for(var l=0;l<a.length;l++){var c=a[l],u=c.position.x-o.x,f=c.position.y-o.y;s.setPosition(c,{x:o.x+u*t,y:o.y+f*n});s.scale(c,t,n)}return e};\n/**\n         * Returns the union of the bounds of all of the composite's bodies.\n         * @method bounds\n         * @param {composite} composite The composite.\n         * @returns {bounds} The composite bounds.\n         */i.bounds=function(e){var t=i.allBodies(e),n=[];for(var o=0;o<t.length;o+=1){var r=t[o];n.push(r.bounds.min,r.bounds.max)}return a.create(n)};\n/**\n        * Fired when a call to `Composite.add` is made, before objects have been added.\n        *\n        * @event beforeAdd\n        * @param {} event An event object\n        * @param {} event.object The object(s) to be added (may be a single body, constraint, composite or a mixed array of these)\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n        * Fired when a call to `Composite.add` is made, after objects have been added.\n        *\n        * @event afterAdd\n        * @param {} event An event object\n        * @param {} event.object The object(s) that have been added (may be a single body, constraint, composite or a mixed array of these)\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n        * Fired when a call to `Composite.remove` is made, before objects have been removed.\n        *\n        * @event beforeRemove\n        * @param {} event An event object\n        * @param {} event.object The object(s) to be removed (may be a single body, constraint, composite or a mixed array of these)\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n        * Fired when a call to `Composite.remove` is made, after objects have been removed.\n        *\n        * @event afterRemove\n        * @param {} event An event object\n        * @param {} event.object The object(s) that have been removed (may be a single body, constraint, composite or a mixed array of these)\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n         * An integer `Number` uniquely identifying number generated in `Composite.create` by `Common.nextId`.\n         *\n         * @property id\n         * @type number\n         */\n/**\n         * A `String` denoting the type of object.\n         *\n         * @property type\n         * @type string\n         * @default \"composite\"\n         * @readOnly\n         */\n/**\n         * An arbitrary `String` name to help the user identify and manage composites.\n         *\n         * @property label\n         * @type string\n         * @default \"Composite\"\n         */\n/**\n         * A flag that specifies whether the composite has been modified during the current step.\n         * This is automatically managed when bodies, constraints or composites are added or removed.\n         *\n         * @property isModified\n         * @type boolean\n         * @default false\n         */\n/**\n         * The `Composite` that is the parent of this composite. It is automatically managed by the `Matter.Composite` methods.\n         *\n         * @property parent\n         * @type composite\n         * @default null\n         */\n/**\n         * An array of `Body` that are _direct_ children of this composite.\n         * To add or remove bodies you should use `Composite.add` and `Composite.remove` methods rather than directly modifying this property.\n         * If you wish to recursively find all descendants, you should use the `Composite.allBodies` method.\n         *\n         * @property bodies\n         * @type body[]\n         * @default []\n         */\n/**\n         * An array of `Constraint` that are _direct_ children of this composite.\n         * To add or remove constraints you should use `Composite.add` and `Composite.remove` methods rather than directly modifying this property.\n         * If you wish to recursively find all descendants, you should use the `Composite.allConstraints` method.\n         *\n         * @property constraints\n         * @type constraint[]\n         * @default []\n         */\n/**\n         * An array of `Composite` that are _direct_ children of this composite.\n         * To add or remove composites you should use `Composite.add` and `Composite.remove` methods rather than directly modifying this property.\n         * If you wish to recursively find all descendants, you should use the `Composite.allComposites` method.\n         *\n         * @property composites\n         * @type composite[]\n         * @default []\n         */\n/**\n         * An object reserved for storing plugin-specific properties.\n         *\n         * @property plugin\n         * @type {}\n         */\n/**\n         * An object used for storing cached results for performance reasons.\n         * This is used internally only and is automatically managed.\n         *\n         * @private\n         * @property cache\n         * @type {}\n         */})()},function(e,t,n){var i={};e.exports=i;var o=n(3);var r=n(2);var a=n(7);n(16);var s=n(0);var l=n(1);var c=n(11);(function(){i._inertiaScale=4;i._nextCollidingGroupId=1;i._nextNonCollidingGroupId=-1;i._nextCategory=1;\n/**\n         * Creates a new rigid body model. The options parameter is an object that specifies any properties you wish to override the defaults.\n         * All properties have default values, and many are pre-calculated automatically based on other properties.\n         * Vertices must be specified in clockwise order.\n         * See the properties section below for detailed information on what you can pass via the `options` object.\n         * @method create\n         * @param {} options\n         * @return {body} body\n         */i.create=function(e){var t={id:s.nextId(),type:\"body\",label:\"Body\",parts:[],plugin:{},angle:0,vertices:o.fromPath(\"L 0 0 L 40 0 L 40 40 L 0 40\"),position:{x:0,y:0},force:{x:0,y:0},torque:0,positionImpulse:{x:0,y:0},constraintImpulse:{x:0,y:0,angle:0},totalContacts:0,speed:0,angularSpeed:0,velocity:{x:0,y:0},angularVelocity:0,isSensor:false,isStatic:false,isSleeping:false,motion:0,sleepThreshold:60,density:.001,restitution:0,friction:.1,frictionStatic:.5,frictionAir:.01,collisionFilter:{category:1,mask:4294967295,group:0},slop:.05,timeScale:1,render:{visible:true,opacity:1,strokeStyle:null,fillStyle:null,lineWidth:null,sprite:{xScale:1,yScale:1,xOffset:0,yOffset:0}},events:null,bounds:null,chamfer:null,circleRadius:0,positionPrev:null,anglePrev:0,parent:null,axes:null,area:0,mass:0,inertia:0,_original:null};var n=s.extend(t,e);_initProperties(n,e);return n};\n/**\n         * Returns the next unique group index for which bodies will collide.\n         * If `isNonColliding` is `true`, returns the next unique group index for which bodies will _not_ collide.\n         * See `body.collisionFilter` for more information.\n         * @method nextGroup\n         * @param {bool} [isNonColliding=false]\n         * @return {Number} Unique group index\n         */i.nextGroup=function(e){return e?i._nextNonCollidingGroupId--:i._nextCollidingGroupId++};i.nextCategory=function(){i._nextCategory=i._nextCategory<<1;return i._nextCategory};\n/**\n         * Initialises body properties.\n         * @method _initProperties\n         * @private\n         * @param {body} body\n         * @param {} [options]\n         */var _initProperties=function(e,t){t=t||{};i.set(e,{bounds:e.bounds||l.create(e.vertices),positionPrev:e.positionPrev||r.clone(e.position),anglePrev:e.anglePrev||e.angle,vertices:e.vertices,parts:e.parts||[e],isStatic:e.isStatic,isSleeping:e.isSleeping,parent:e.parent||e});o.rotate(e.vertices,e.angle,e.position);c.rotate(e.axes,e.angle);l.update(e.bounds,e.vertices,e.velocity);i.set(e,{axes:t.axes||e.axes,area:t.area||e.area,mass:t.mass||e.mass,inertia:t.inertia||e.inertia});var n=e.isStatic?\"#14151f\":s.choose([\"#f19648\",\"#f5d259\",\"#f55a3c\",\"#063e7b\",\"#ececd1\"]),a=e.isStatic?\"#555\":\"#ccc\",u=e.isStatic&&null===e.render.fillStyle?1:0;e.render.fillStyle=e.render.fillStyle||n;e.render.strokeStyle=e.render.strokeStyle||a;e.render.lineWidth=e.render.lineWidth||u;e.render.sprite.xOffset+=-(e.bounds.min.x-e.position.x)/(e.bounds.max.x-e.bounds.min.x);e.render.sprite.yOffset+=-(e.bounds.min.y-e.position.y)/(e.bounds.max.y-e.bounds.min.y)};\n/**\n         * Given a property and a value (or map of), sets the property(s) on the body, using the appropriate setter functions if they exist.\n         * Prefer to use the actual setter functions in performance critical situations.\n         * @method set\n         * @param {body} body\n         * @param {} settings A property name (or map of properties and values) to set on the body.\n         * @param {} value The value to set if `settings` is a single property name.\n         */i.set=function(e,t,n){var o;if(\"string\"===typeof t){o=t;t={};t[o]=n}for(o in t)if(Object.prototype.hasOwnProperty.call(t,o)){n=t[o];switch(o){case\"isStatic\":i.setStatic(e,n);break;case\"isSleeping\":a.set(e,n);break;case\"mass\":i.setMass(e,n);break;case\"density\":i.setDensity(e,n);break;case\"inertia\":i.setInertia(e,n);break;case\"vertices\":i.setVertices(e,n);break;case\"position\":i.setPosition(e,n);break;case\"angle\":i.setAngle(e,n);break;case\"velocity\":i.setVelocity(e,n);break;case\"angularVelocity\":i.setAngularVelocity(e,n);break;case\"parts\":i.setParts(e,n);break;case\"centre\":i.setCentre(e,n);break;default:e[o]=n}}};\n/**\n         * Sets the body as static, including isStatic flag and setting mass and inertia to Infinity.\n         * @method setStatic\n         * @param {body} body\n         * @param {bool} isStatic\n         */i.setStatic=function(e,t){for(var n=0;n<e.parts.length;n++){var i=e.parts[n];i.isStatic=t;if(t){i._original={restitution:i.restitution,friction:i.friction,mass:i.mass,inertia:i.inertia,density:i.density,inverseMass:i.inverseMass,inverseInertia:i.inverseInertia};i.restitution=0;i.friction=1;i.mass=i.inertia=i.density=Infinity;i.inverseMass=i.inverseInertia=0;i.positionPrev.x=i.position.x;i.positionPrev.y=i.position.y;i.anglePrev=i.angle;i.angularVelocity=0;i.speed=0;i.angularSpeed=0;i.motion=0}else if(i._original){i.restitution=i._original.restitution;i.friction=i._original.friction;i.mass=i._original.mass;i.inertia=i._original.inertia;i.density=i._original.density;i.inverseMass=i._original.inverseMass;i.inverseInertia=i._original.inverseInertia;i._original=null}}};\n/**\n         * Sets the mass of the body. Inverse mass, density and inertia are automatically updated to reflect the change.\n         * @method setMass\n         * @param {body} body\n         * @param {number} mass\n         */i.setMass=function(e,t){var n=e.inertia/(e.mass/6);e.inertia=n*(t/6);e.inverseInertia=1/e.inertia;e.mass=t;e.inverseMass=1/e.mass;e.density=e.mass/e.area};\n/**\n         * Sets the density of the body. Mass and inertia are automatically updated to reflect the change.\n         * @method setDensity\n         * @param {body} body\n         * @param {number} density\n         */i.setDensity=function(e,t){i.setMass(e,t*e.area);e.density=t};\n/**\n         * Sets the moment of inertia (i.e. second moment of area) of the body. \n         * Inverse inertia is automatically updated to reflect the change. Mass is not changed.\n         * @method setInertia\n         * @param {body} body\n         * @param {number} inertia\n         */i.setInertia=function(e,t){e.inertia=t;e.inverseInertia=1/e.inertia};\n/**\n         * Sets the body's vertices and updates body properties accordingly, including inertia, area and mass (with respect to `body.density`).\n         * Vertices will be automatically transformed to be orientated around their centre of mass as the origin.\n         * They are then automatically translated to world space based on `body.position`.\n         *\n         * The `vertices` argument should be passed as an array of `Matter.Vector` points (or a `Matter.Vertices` array).\n         * Vertices must form a convex hull, concave hulls are not supported.\n         *\n         * @method setVertices\n         * @param {body} body\n         * @param {vector[]} vertices\n         */i.setVertices=function(e,t){t[0].body===e?e.vertices=t:e.vertices=o.create(t,e);e.axes=c.fromVertices(e.vertices);e.area=o.area(e.vertices);i.setMass(e,e.density*e.area);var n=o.centre(e.vertices);o.translate(e.vertices,n,-1);i.setInertia(e,i._inertiaScale*o.inertia(e.vertices,e.mass));o.translate(e.vertices,e.position);l.update(e.bounds,e.vertices,e.velocity)};\n/**\n         * Sets the parts of the `body` and updates mass, inertia and centroid.\n         * Each part will have its parent set to `body`.\n         * By default the convex hull will be automatically computed and set on `body`, unless `autoHull` is set to `false.`\n         * Note that this method will ensure that the first part in `body.parts` will always be the `body`.\n         * @method setParts\n         * @param {body} body\n         * @param [body] parts\n         * @param {bool} [autoHull=true]\n         */i.setParts=function(e,t,n){var r;t=t.slice(0);e.parts.length=0;e.parts.push(e);e.parent=e;for(r=0;r<t.length;r++){var a=t[r];if(a!==e){a.parent=e;e.parts.push(a)}}if(1!==e.parts.length){n=\"undefined\"===typeof n||n;if(n){var s=[];for(r=0;r<t.length;r++)s=s.concat(t[r].vertices);o.clockwiseSort(s);var l=o.hull(s),c=o.centre(l);i.setVertices(e,l);o.translate(e.vertices,c)}var u=i._totalProperties(e);e.area=u.area;e.parent=e;e.position.x=u.centre.x;e.position.y=u.centre.y;e.positionPrev.x=u.centre.x;e.positionPrev.y=u.centre.y;i.setMass(e,u.mass);i.setInertia(e,u.inertia);i.setPosition(e,u.centre)}};\n/**\n         * Set the centre of mass of the body. \n         * The `centre` is a vector in world-space unless `relative` is set, in which case it is a translation.\n         * The centre of mass is the point the body rotates about and can be used to simulate non-uniform density.\n         * This is equal to moving `body.position` but not the `body.vertices`.\n         * Invalid if the `centre` falls outside the body's convex hull.\n         * @method setCentre\n         * @param {body} body\n         * @param {vector} centre\n         * @param {bool} relative\n         */i.setCentre=function(e,t,n){if(n){e.positionPrev.x+=t.x;e.positionPrev.y+=t.y;e.position.x+=t.x;e.position.y+=t.y}else{e.positionPrev.x=t.x-(e.position.x-e.positionPrev.x);e.positionPrev.y=t.y-(e.position.y-e.positionPrev.y);e.position.x=t.x;e.position.y=t.y}};\n/**\n         * Sets the position of the body instantly. Velocity, angle, force etc. are unchanged.\n         * @method setPosition\n         * @param {body} body\n         * @param {vector} position\n         */i.setPosition=function(e,t){var n=r.sub(t,e.position);e.positionPrev.x+=n.x;e.positionPrev.y+=n.y;for(var i=0;i<e.parts.length;i++){var a=e.parts[i];a.position.x+=n.x;a.position.y+=n.y;o.translate(a.vertices,n);l.update(a.bounds,a.vertices,e.velocity)}};\n/**\n         * Sets the angle of the body instantly. Angular velocity, position, force etc. are unchanged.\n         * @method setAngle\n         * @param {body} body\n         * @param {number} angle\n         */i.setAngle=function(e,t){var n=t-e.angle;e.anglePrev+=n;for(var i=0;i<e.parts.length;i++){var a=e.parts[i];a.angle+=n;o.rotate(a.vertices,n,e.position);c.rotate(a.axes,n);l.update(a.bounds,a.vertices,e.velocity);i>0&&r.rotateAbout(a.position,n,e.position,a.position)}};\n/**\n         * Sets the linear velocity of the body instantly. Position, angle, force etc. are unchanged. See also `Body.applyForce`.\n         * @method setVelocity\n         * @param {body} body\n         * @param {vector} velocity\n         */i.setVelocity=function(e,t){e.positionPrev.x=e.position.x-t.x;e.positionPrev.y=e.position.y-t.y;e.velocity.x=t.x;e.velocity.y=t.y;e.speed=r.magnitude(e.velocity)};\n/**\n         * Sets the angular velocity of the body instantly. Position, angle, force etc. are unchanged. See also `Body.applyForce`.\n         * @method setAngularVelocity\n         * @param {body} body\n         * @param {number} velocity\n         */i.setAngularVelocity=function(e,t){e.anglePrev=e.angle-t;e.angularVelocity=t;e.angularSpeed=Math.abs(e.angularVelocity)};\n/**\n         * Moves a body by a given vector relative to its current position, without imparting any velocity.\n         * @method translate\n         * @param {body} body\n         * @param {vector} translation\n         */i.translate=function(e,t){i.setPosition(e,r.add(e.position,t))};\n/**\n         * Rotates a body by a given angle relative to its current angle, without imparting any angular velocity.\n         * @method rotate\n         * @param {body} body\n         * @param {number} rotation\n         * @param {vector} [point]\n         */i.rotate=function(e,t,n){if(n){var o=Math.cos(t),r=Math.sin(t),a=e.position.x-n.x,s=e.position.y-n.y;i.setPosition(e,{x:n.x+(a*o-s*r),y:n.y+(a*r+s*o)});i.setAngle(e,e.angle+t)}else i.setAngle(e,e.angle+t)};\n/**\n         * Scales the body, including updating physical properties (mass, area, axes, inertia), from a world-space point (default is body centre).\n         * @method scale\n         * @param {body} body\n         * @param {number} scaleX\n         * @param {number} scaleY\n         * @param {vector} [point]\n         */i.scale=function(e,t,n,r){var a=0,s=0;r=r||e.position;for(var u=0;u<e.parts.length;u++){var f=e.parts[u];o.scale(f.vertices,t,n,r);f.axes=c.fromVertices(f.vertices);f.area=o.area(f.vertices);i.setMass(f,e.density*f.area);o.translate(f.vertices,{x:-f.position.x,y:-f.position.y});i.setInertia(f,i._inertiaScale*o.inertia(f.vertices,f.mass));o.translate(f.vertices,{x:f.position.x,y:f.position.y});if(u>0){a+=f.area;s+=f.inertia}f.position.x=r.x+(f.position.x-r.x)*t;f.position.y=r.y+(f.position.y-r.y)*n;l.update(f.bounds,f.vertices,e.velocity)}if(e.parts.length>1){e.area=a;if(!e.isStatic){i.setMass(e,e.density*a);i.setInertia(e,s)}}e.circleRadius&&(t===n?e.circleRadius*=t:e.circleRadius=null)};\n/**\n         * Performs a simulation step for the given `body`, including updating position and angle using Verlet integration.\n         * @method update\n         * @param {body} body\n         * @param {number} deltaTime\n         * @param {number} timeScale\n         * @param {number} correction\n         */i.update=function(e,t,n,i){var a=Math.pow(t*n*e.timeScale,2);var s=1-e.frictionAir*n*e.timeScale,u=e.position.x-e.positionPrev.x,f=e.position.y-e.positionPrev.y;e.velocity.x=u*s*i+e.force.x/e.mass*a;e.velocity.y=f*s*i+e.force.y/e.mass*a;e.positionPrev.x=e.position.x;e.positionPrev.y=e.position.y;e.position.x+=e.velocity.x;e.position.y+=e.velocity.y;e.angularVelocity=(e.angle-e.anglePrev)*s*i+e.torque/e.inertia*a;e.anglePrev=e.angle;e.angle+=e.angularVelocity;e.speed=r.magnitude(e.velocity);e.angularSpeed=Math.abs(e.angularVelocity);for(var d=0;d<e.parts.length;d++){var p=e.parts[d];o.translate(p.vertices,e.velocity);if(d>0){p.position.x+=e.velocity.x;p.position.y+=e.velocity.y}if(0!==e.angularVelocity){o.rotate(p.vertices,e.angularVelocity,e.position);c.rotate(p.axes,e.angularVelocity);d>0&&r.rotateAbout(p.position,e.angularVelocity,e.position,p.position)}l.update(p.bounds,p.vertices,e.velocity)}};\n/**\n         * Applies a force to a body from a given world-space position, including resulting torque.\n         * @method applyForce\n         * @param {body} body\n         * @param {vector} position\n         * @param {vector} force\n         */i.applyForce=function(e,t,n){e.force.x+=n.x;e.force.y+=n.y;var i={x:t.x-e.position.x,y:t.y-e.position.y};e.torque+=i.x*n.y-i.y*n.x};\n/**\n         * Returns the sums of the properties of all compound parts of the parent body.\n         * @method _totalProperties\n         * @private\n         * @param {body} body\n         * @return {}\n         */i._totalProperties=function(e){var t={mass:0,area:0,inertia:0,centre:{x:0,y:0}};for(var n=1===e.parts.length?0:1;n<e.parts.length;n++){var i=e.parts[n],o=Infinity!==i.mass?i.mass:1;t.mass+=o;t.area+=i.area;t.inertia+=i.inertia;t.centre=r.add(t.centre,r.mult(i.position,o))}t.centre=r.div(t.centre,t.mass);return t};\n/**\n        * Fired when a body starts sleeping (where `this` is the body).\n        *\n        * @event sleepStart\n        * @this {body} The body that has started sleeping\n        * @param {} event An event object\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n        * Fired when a body ends sleeping (where `this` is the body).\n        *\n        * @event sleepEnd\n        * @this {body} The body that has ended sleeping\n        * @param {} event An event object\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n         * An integer `Number` uniquely identifying number generated in `Body.create` by `Common.nextId`.\n         *\n         * @property id\n         * @type number\n         */\n/**\n         * A `String` denoting the type of object.\n         *\n         * @property type\n         * @type string\n         * @default \"body\"\n         * @readOnly\n         */\n/**\n         * An arbitrary `String` name to help the user identify and manage bodies.\n         *\n         * @property label\n         * @type string\n         * @default \"Body\"\n         */\n/**\n         * An array of bodies that make up this body. \n         * The first body in the array must always be a self reference to the current body instance.\n         * All bodies in the `parts` array together form a single rigid compound body.\n         * Parts are allowed to overlap, have gaps or holes or even form concave bodies.\n         * Parts themselves should never be added to a `World`, only the parent body should be.\n         * Use `Body.setParts` when setting parts to ensure correct updates of all properties.\n         *\n         * @property parts\n         * @type body[]\n         */\n/**\n         * An object reserved for storing plugin-specific properties.\n         *\n         * @property plugin\n         * @type {}\n         */\n/**\n         * A self reference if the body is _not_ a part of another body.\n         * Otherwise this is a reference to the body that this is a part of.\n         * See `body.parts`.\n         *\n         * @property parent\n         * @type body\n         */\n/**\n         * A `Number` specifying the angle of the body, in radians.\n         *\n         * @property angle\n         * @type number\n         * @default 0\n         */\n/**\n         * An array of `Vector` objects that specify the convex hull of the rigid body.\n         * These should be provided about the origin `(0, 0)`. E.g.\n         *\n         *     [{ x: 0, y: 0 }, { x: 25, y: 50 }, { x: 50, y: 0 }]\n         *\n         * When passed via `Body.create`, the vertices are translated relative to `body.position` (i.e. world-space, and constantly updated by `Body.update` during simulation).\n         * The `Vector` objects are also augmented with additional properties required for efficient collision detection. \n         *\n         * Other properties such as `inertia` and `bounds` are automatically calculated from the passed vertices (unless provided via `options`).\n         * Concave hulls are not currently supported. The module `Matter.Vertices` contains useful methods for working with vertices.\n         *\n         * @property vertices\n         * @type vector[]\n         */\n/**\n         * A `Vector` that specifies the current world-space position of the body.\n         *\n         * @property position\n         * @type vector\n         * @default { x: 0, y: 0 }\n         */\n/**\n         * A `Vector` that specifies the force to apply in the current step. It is zeroed after every `Body.update`. See also `Body.applyForce`.\n         *\n         * @property force\n         * @type vector\n         * @default { x: 0, y: 0 }\n         */\n/**\n         * A `Number` that specifies the torque (turning force) to apply in the current step. It is zeroed after every `Body.update`.\n         *\n         * @property torque\n         * @type number\n         * @default 0\n         */\n/**\n         * A `Number` that _measures_ the current speed of the body after the last `Body.update`. It is read-only and always positive (it's the magnitude of `body.velocity`).\n         *\n         * @readOnly\n         * @property speed\n         * @type number\n         * @default 0\n         */\n/**\n         * A `Number` that _measures_ the current angular speed of the body after the last `Body.update`. It is read-only and always positive (it's the magnitude of `body.angularVelocity`).\n         *\n         * @readOnly\n         * @property angularSpeed\n         * @type number\n         * @default 0\n         */\n/**\n         * A `Vector` that _measures_ the current velocity of the body after the last `Body.update`. It is read-only. \n         * If you need to modify a body's velocity directly, you should either apply a force or simply change the body's `position` (as the engine uses position-Verlet integration).\n         *\n         * @readOnly\n         * @property velocity\n         * @type vector\n         * @default { x: 0, y: 0 }\n         */\n/**\n         * A `Number` that _measures_ the current angular velocity of the body after the last `Body.update`. It is read-only. \n         * If you need to modify a body's angular velocity directly, you should apply a torque or simply change the body's `angle` (as the engine uses position-Verlet integration).\n         *\n         * @readOnly\n         * @property angularVelocity\n         * @type number\n         * @default 0\n         */\n/**\n         * A flag that indicates whether a body is considered static. A static body can never change position or angle and is completely fixed.\n         * If you need to set a body as static after its creation, you should use `Body.setStatic` as this requires more than just setting this flag.\n         *\n         * @property isStatic\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag that indicates whether a body is a sensor. Sensor triggers collision events, but doesn't react with colliding body physically.\n         *\n         * @property isSensor\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag that indicates whether the body is considered sleeping. A sleeping body acts similar to a static body, except it is only temporary and can be awoken.\n         * If you need to set a body as sleeping, you should use `Sleeping.set` as this requires more than just setting this flag.\n         *\n         * @property isSleeping\n         * @type boolean\n         * @default false\n         */\n/**\n         * A `Number` that _measures_ the amount of movement a body currently has (a combination of `speed` and `angularSpeed`). It is read-only and always positive.\n         * It is used and updated by the `Matter.Sleeping` module during simulation to decide if a body has come to rest.\n         *\n         * @readOnly\n         * @property motion\n         * @type number\n         * @default 0\n         */\n/**\n         * A `Number` that defines the number of updates in which this body must have near-zero velocity before it is set as sleeping by the `Matter.Sleeping` module (if sleeping is enabled by the engine).\n         *\n         * @property sleepThreshold\n         * @type number\n         * @default 60\n         */\n/**\n         * A `Number` that defines the density of the body, that is its mass per unit area.\n         * If you pass the density via `Body.create` the `mass` property is automatically calculated for you based on the size (area) of the object.\n         * This is generally preferable to simply setting mass and allows for more intuitive definition of materials (e.g. rock has a higher density than wood).\n         *\n         * @property density\n         * @type number\n         * @default 0.001\n         */\n/**\n         * A `Number` that defines the mass of the body, although it may be more appropriate to specify the `density` property instead.\n         * If you modify this value, you must also modify the `body.inverseMass` property (`1 / mass`).\n         *\n         * @property mass\n         * @type number\n         */\n/**\n         * A `Number` that defines the inverse mass of the body (`1 / mass`).\n         * If you modify this value, you must also modify the `body.mass` property.\n         *\n         * @property inverseMass\n         * @type number\n         */\n/**\n         * A `Number` that defines the moment of inertia (i.e. second moment of area) of the body.\n         * It is automatically calculated from the given convex hull (`vertices` array) and density in `Body.create`.\n         * If you modify this value, you must also modify the `body.inverseInertia` property (`1 / inertia`).\n         *\n         * @property inertia\n         * @type number\n         */\n/**\n         * A `Number` that defines the inverse moment of inertia of the body (`1 / inertia`).\n         * If you modify this value, you must also modify the `body.inertia` property.\n         *\n         * @property inverseInertia\n         * @type number\n         */\n/**\n         * A `Number` that defines the restitution (elasticity) of the body. The value is always positive and is in the range `(0, 1)`.\n         * A value of `0` means collisions may be perfectly inelastic and no bouncing may occur. \n         * A value of `0.8` means the body may bounce back with approximately 80% of its kinetic energy.\n         * Note that collision response is based on _pairs_ of bodies, and that `restitution` values are _combined_ with the following formula:\n         *\n         *     Math.max(bodyA.restitution, bodyB.restitution)\n         *\n         * @property restitution\n         * @type number\n         * @default 0\n         */\n/**\n         * A `Number` that defines the friction of the body. The value is always positive and is in the range `(0, 1)`.\n         * A value of `0` means that the body may slide indefinitely.\n         * A value of `1` means the body may come to a stop almost instantly after a force is applied.\n         *\n         * The effects of the value may be non-linear. \n         * High values may be unstable depending on the body.\n         * The engine uses a Coulomb friction model including static and kinetic friction.\n         * Note that collision response is based on _pairs_ of bodies, and that `friction` values are _combined_ with the following formula:\n         *\n         *     Math.min(bodyA.friction, bodyB.friction)\n         *\n         * @property friction\n         * @type number\n         * @default 0.1\n         */\n/**\n         * A `Number` that defines the static friction of the body (in the Coulomb friction model). \n         * A value of `0` means the body will never 'stick' when it is nearly stationary and only dynamic `friction` is used.\n         * The higher the value (e.g. `10`), the more force it will take to initially get the body moving when nearly stationary.\n         * This value is multiplied with the `friction` property to make it easier to change `friction` and maintain an appropriate amount of static friction.\n         *\n         * @property frictionStatic\n         * @type number\n         * @default 0.5\n         */\n/**\n         * A `Number` that defines the air friction of the body (air resistance). \n         * A value of `0` means the body will never slow as it moves through space.\n         * The higher the value, the faster a body slows when moving through space.\n         * The effects of the value are non-linear. \n         *\n         * @property frictionAir\n         * @type number\n         * @default 0.01\n         */\n/**\n         * An `Object` that specifies the collision filtering properties of this body.\n         *\n         * Collisions between two bodies will obey the following rules:\n         * - If the two bodies have the same non-zero value of `collisionFilter.group`,\n         *   they will always collide if the value is positive, and they will never collide\n         *   if the value is negative.\n         * - If the two bodies have different values of `collisionFilter.group` or if one\n         *   (or both) of the bodies has a value of 0, then the category/mask rules apply as follows:\n         *\n         * Each body belongs to a collision category, given by `collisionFilter.category`. This\n         * value is used as a bit field and the category should have only one bit set, meaning that\n         * the value of this property is a power of two in the range [1, 2^31]. Thus, there are 32\n         * different collision categories available.\n         *\n         * Each body also defines a collision bitmask, given by `collisionFilter.mask` which specifies\n         * the categories it collides with (the value is the bitwise AND value of all these categories).\n         *\n         * Using the category/mask rules, two bodies `A` and `B` collide if each includes the other's\n         * category in its mask, i.e. `(categoryA & maskB) !== 0` and `(categoryB & maskA) !== 0`\n         * are both true.\n         *\n         * @property collisionFilter\n         * @type object\n         */\n/**\n         * An Integer `Number`, that specifies the collision group this body belongs to.\n         * See `body.collisionFilter` for more information.\n         *\n         * @property collisionFilter.group\n         * @type object\n         * @default 0\n         */\n/**\n         * A bit field that specifies the collision category this body belongs to.\n         * The category value should have only one bit set, for example `0x0001`.\n         * This means there are up to 32 unique collision categories available.\n         * See `body.collisionFilter` for more information.\n         *\n         * @property collisionFilter.category\n         * @type object\n         * @default 1\n         */\n/**\n         * A bit mask that specifies the collision categories this body may collide with.\n         * See `body.collisionFilter` for more information.\n         *\n         * @property collisionFilter.mask\n         * @type object\n         * @default -1\n         */\n/**\n         * A `Number` that specifies a tolerance on how far a body is allowed to 'sink' or rotate into other bodies.\n         * Avoid changing this value unless you understand the purpose of `slop` in physics engines.\n         * The default should generally suffice, although very large bodies may require larger values for stable stacking.\n         *\n         * @property slop\n         * @type number\n         * @default 0.05\n         */\n/**\n         * A `Number` that allows per-body time scaling, e.g. a force-field where bodies inside are in slow-motion, while others are at full speed.\n         *\n         * @property timeScale\n         * @type number\n         * @default 1\n         */\n/**\n         * An `Object` that defines the rendering properties to be consumed by the module `Matter.Render`.\n         *\n         * @property render\n         * @type object\n         */\n/**\n         * A flag that indicates if the body should be rendered.\n         *\n         * @property render.visible\n         * @type boolean\n         * @default true\n         */\n/**\n         * Sets the opacity to use when rendering.\n         *\n         * @property render.opacity\n         * @type number\n         * @default 1\n        */\n/**\n         * An `Object` that defines the sprite properties to use when rendering, if any.\n         *\n         * @property render.sprite\n         * @type object\n         */\n/**\n         * An `String` that defines the path to the image to use as the sprite texture, if any.\n         *\n         * @property render.sprite.texture\n         * @type string\n         */\n/**\n         * A `Number` that defines the scaling in the x-axis for the sprite, if any.\n         *\n         * @property render.sprite.xScale\n         * @type number\n         * @default 1\n         */\n/**\n         * A `Number` that defines the scaling in the y-axis for the sprite, if any.\n         *\n         * @property render.sprite.yScale\n         * @type number\n         * @default 1\n         */\n/**\n          * A `Number` that defines the offset in the x-axis for the sprite (normalised by texture width).\n          *\n          * @property render.sprite.xOffset\n          * @type number\n          * @default 0\n          */\n/**\n          * A `Number` that defines the offset in the y-axis for the sprite (normalised by texture height).\n          *\n          * @property render.sprite.yOffset\n          * @type number\n          * @default 0\n          */\n/**\n         * A `Number` that defines the line width to use when rendering the body outline (if a sprite is not defined).\n         * A value of `0` means no outline will be rendered.\n         *\n         * @property render.lineWidth\n         * @type number\n         * @default 0\n         */\n/**\n         * A `String` that defines the fill style to use when rendering the body (if a sprite is not defined).\n         * It is the same as when using a canvas, so it accepts CSS style property values.\n         *\n         * @property render.fillStyle\n         * @type string\n         * @default a random colour\n         */\n/**\n         * A `String` that defines the stroke style to use when rendering the body outline (if a sprite is not defined).\n         * It is the same as when using a canvas, so it accepts CSS style property values.\n         *\n         * @property render.strokeStyle\n         * @type string\n         * @default a random colour\n         */\n/**\n         * An array of unique axis vectors (edge normals) used for collision detection.\n         * These are automatically calculated from the given convex hull (`vertices` array) in `Body.create`.\n         * They are constantly updated by `Body.update` during the simulation.\n         *\n         * @property axes\n         * @type vector[]\n         */\n/**\n         * A `Number` that _measures_ the area of the body's convex hull, calculated at creation by `Body.create`.\n         *\n         * @property area\n         * @type string\n         * @default \n         */\n/**\n         * A `Bounds` object that defines the AABB region for the body.\n         * It is automatically calculated from the given convex hull (`vertices` array) in `Body.create` and constantly updated by `Body.update` during simulation.\n         *\n         * @property bounds\n         * @type bounds\n         */})()},function(e,t,n){var i={};e.exports=i;var o=n(4);(function(){i._motionWakeThreshold=.18;i._motionSleepThreshold=.08;i._minBias=.9;\n/**\n         * Puts bodies to sleep or wakes them up depending on their motion.\n         * @method update\n         * @param {body[]} bodies\n         * @param {number} timeScale\n         */i.update=function(e,t){var n=t*t*t;for(var o=0;o<e.length;o++){var r=e[o],a=r.speed*r.speed+r.angularSpeed*r.angularSpeed;if(0===r.force.x&&0===r.force.y){var s=Math.min(r.motion,a),l=Math.max(r.motion,a);r.motion=i._minBias*s+(1-i._minBias)*l;if(r.sleepThreshold>0&&r.motion<i._motionSleepThreshold*n){r.sleepCounter+=1;r.sleepCounter>=r.sleepThreshold&&i.set(r,true)}else r.sleepCounter>0&&(r.sleepCounter-=1)}else i.set(r,false)}};\n/**\n         * Given a set of colliding pairs, wakes the sleeping bodies involved.\n         * @method afterCollisions\n         * @param {pair[]} pairs\n         * @param {number} timeScale\n         */i.afterCollisions=function(e,t){var n=t*t*t;for(var o=0;o<e.length;o++){var r=e[o];if(r.isActive){var a=r.collision,s=a.bodyA.parent,l=a.bodyB.parent;if(!(s.isSleeping&&l.isSleeping||s.isStatic||l.isStatic)&&(s.isSleeping||l.isSleeping)){var c=s.isSleeping&&!s.isStatic?s:l,u=c===s?l:s;!c.isStatic&&u.motion>i._motionWakeThreshold*n&&i.set(c,false)}}}};\n/**\n         * Set a body as sleeping or awake.\n         * @method set\n         * @param {body} body\n         * @param {boolean} isSleeping\n         */i.set=function(e,t){var n=e.isSleeping;if(t){e.isSleeping=true;e.sleepCounter=e.sleepThreshold;e.positionImpulse.x=0;e.positionImpulse.y=0;e.positionPrev.x=e.position.x;e.positionPrev.y=e.position.y;e.anglePrev=e.angle;e.speed=0;e.angularSpeed=0;e.motion=0;n||o.trigger(e,\"sleepStart\")}else{e.isSleeping=false;e.sleepCounter=0;n&&o.trigger(e,\"sleepEnd\")}}})()},function(e,t,n){var i={};e.exports=i;var o=n(3);var r=n(9);(function(){var e=[];var t={overlap:0,axis:null};var n={overlap:0,axis:null};\n/**\n         * Creates a new collision record.\n         * @method create\n         * @param {body} bodyA The first body part represented by the collision record\n         * @param {body} bodyB The second body part represented by the collision record\n         * @return {collision} A new collision record\n         */i.create=function(e,t){return{pair:null,collided:false,bodyA:e,bodyB:t,parentA:e.parent,parentB:t.parent,depth:0,normal:{x:0,y:0},tangent:{x:0,y:0},penetration:{x:0,y:0},supports:[]}};\n/**\n         * Detect collision between two bodies.\n         * @method collides\n         * @param {body} bodyA\n         * @param {body} bodyB\n         * @param {pairs} [pairs] Optionally reuse collision records from existing pairs.\n         * @return {collision|null} A collision record if detected, otherwise null\n         */i.collides=function(e,a,s){i._overlapAxes(t,e.vertices,a.vertices,e.axes);if(t.overlap<=0)return null;i._overlapAxes(n,a.vertices,e.vertices,a.axes);if(n.overlap<=0)return null;var l,c=s&&s.table[r.id(e,a)];if(c)l=c.collision;else{l=i.create(e,a);l.collided=true;l.bodyA=e.id<a.id?e:a;l.bodyB=e.id<a.id?a:e;l.parentA=l.bodyA.parent;l.parentB=l.bodyB.parent}e=l.bodyA;a=l.bodyB;var u;u=t.overlap<n.overlap?t:n;var f=l.normal,d=l.supports,p=u.axis,v=p.x,y=p.y;if(v*(a.position.x-e.position.x)+y*(a.position.y-e.position.y)<0){f.x=v;f.y=y}else{f.x=-v;f.y=-y}l.tangent.x=-f.y;l.tangent.y=f.x;l.depth=u.overlap;l.penetration.x=f.x*l.depth;l.penetration.y=f.y*l.depth;var m=i._findSupports(e,a,f,1),g=0;o.contains(e.vertices,m[0])&&(d[g++]=m[0]);o.contains(e.vertices,m[1])&&(d[g++]=m[1]);if(g<2){var x=i._findSupports(a,e,f,-1);o.contains(a.vertices,x[0])&&(d[g++]=x[0]);g<2&&o.contains(a.vertices,x[1])&&(d[g++]=x[1])}0===g&&(d[g++]=m[0]);d.length=g;return l};\n/**\n         * Find the overlap between two sets of vertices.\n         * @method _overlapAxes\n         * @private\n         * @param {object} result\n         * @param {vertices} verticesA\n         * @param {vertices} verticesB\n         * @param {axes} axes\n         */i._overlapAxes=function(e,t,n,i){var o,r,a,s,l,c,u=t.length,f=n.length,d=t[0].x,p=t[0].y,v=n[0].x,y=n[0].y,m=i.length,g=Number.MAX_VALUE,x=0;for(l=0;l<m;l++){var h=i[l],b=h.x,S=h.y,w=d*b+p*S,_=v*b+y*S,A=w,P=_;for(c=1;c<u;c+=1){s=t[c].x*b+t[c].y*S;s>A?A=s:s<w&&(w=s)}for(c=1;c<f;c+=1){s=n[c].x*b+n[c].y*S;s>P?P=s:s<_&&(_=s)}r=A-_;a=P-w;o=r<a?r:a;if(o<g){g=o;x=l;if(o<=0)break}}e.axis=i[x];e.overlap=g};\n/**\n         * Projects vertices on an axis and returns an interval.\n         * @method _projectToAxis\n         * @private\n         * @param {} projection\n         * @param {} vertices\n         * @param {} axis\n         */i._projectToAxis=function(e,t,n){var i=t[0].x*n.x+t[0].y*n.y,o=i;for(var r=1;r<t.length;r+=1){var a=t[r].x*n.x+t[r].y*n.y;a>o?o=a:a<i&&(i=a)}e.min=i;e.max=o};\n/**\n         * Finds supporting vertices given two bodies along a given direction using hill-climbing.\n         * @method _findSupports\n         * @private\n         * @param {body} bodyA\n         * @param {body} bodyB\n         * @param {vector} normal\n         * @param {number} direction\n         * @return [vector]\n         */i._findSupports=function(t,n,i,o){var r,a,s,l,c,u=n.vertices,f=u.length,d=t.position.x,p=t.position.y,v=i.x*o,y=i.y*o,m=Number.MAX_VALUE;for(c=0;c<f;c+=1){a=u[c];l=v*(d-a.x)+y*(p-a.y);if(l<m){m=l;r=a}}s=u[(f+r.index-1)%f];m=v*(d-s.x)+y*(p-s.y);a=u[(r.index+1)%f];if(v*(d-a.x)+y*(p-a.y)<m){e[0]=r;e[1]=a;return e}e[0]=r;e[1]=s;return e};\n/**\n         * A reference to the pair using this collision record, if there is one.\n         *\n         * @property pair\n         * @type {pair|null}\n         * @default null\n         */\n/**\n         * A flag that indicates if the bodies were colliding when the collision was last updated.\n         * \n         * @property collided\n         * @type boolean\n         * @default false\n         */\n/**\n         * The first body part represented by the collision (see also `collision.parentA`).\n         * \n         * @property bodyA\n         * @type body\n         */\n/**\n         * The second body part represented by the collision (see also `collision.parentB`).\n         * \n         * @property bodyB\n         * @type body\n         */\n/**\n         * The first body represented by the collision (i.e. `collision.bodyA.parent`).\n         * \n         * @property parentA\n         * @type body\n         */\n/**\n         * The second body represented by the collision (i.e. `collision.bodyB.parent`).\n         * \n         * @property parentB\n         * @type body\n         */\n/**\n         * A `Number` that represents the minimum separating distance between the bodies along the collision normal.\n         *\n         * @readOnly\n         * @property depth\n         * @type number\n         * @default 0\n         */\n/**\n         * A normalised `Vector` that represents the direction between the bodies that provides the minimum separating distance.\n         *\n         * @property normal\n         * @type vector\n         * @default { x: 0, y: 0 }\n         */\n/**\n         * A normalised `Vector` that is the tangent direction to the collision normal.\n         *\n         * @property tangent\n         * @type vector\n         * @default { x: 0, y: 0 }\n         */\n/**\n         * A `Vector` that represents the direction and depth of the collision.\n         *\n         * @property penetration\n         * @type vector\n         * @default { x: 0, y: 0 }\n         */\n/**\n         * An array of body vertices that represent the support points in the collision.\n         * These are the deepest vertices (along the collision normal) of each body that are contained by the other body's vertices.\n         *\n         * @property supports\n         * @type vector[]\n         * @default []\n         */})()},function(e,t,n){var i={};e.exports=i;var o=n(17);(function(){\n/**\n         * Creates a pair.\n         * @method create\n         * @param {collision} collision\n         * @param {number} timestamp\n         * @return {pair} A new pair\n         */\ni.create=function(e,t){var n=e.bodyA,o=e.bodyB;var r={id:i.id(n,o),bodyA:n,bodyB:o,collision:e,contacts:[],activeContacts:[],separation:0,isActive:true,confirmedActive:true,isSensor:n.isSensor||o.isSensor,timeCreated:t,timeUpdated:t,inverseMass:0,friction:0,frictionStatic:0,restitution:0,slop:0};i.update(r,e,t);return r};\n/**\n         * Updates a pair given a collision.\n         * @method update\n         * @param {pair} pair\n         * @param {collision} collision\n         * @param {number} timestamp\n         */i.update=function(e,t,n){var i=e.contacts,r=t.supports,a=e.activeContacts,s=t.parentA,l=t.parentB,c=s.vertices.length;e.isActive=true;e.timeUpdated=n;e.collision=t;e.separation=t.depth;e.inverseMass=s.inverseMass+l.inverseMass;e.friction=s.friction<l.friction?s.friction:l.friction;e.frictionStatic=s.frictionStatic>l.frictionStatic?s.frictionStatic:l.frictionStatic;e.restitution=s.restitution>l.restitution?s.restitution:l.restitution;e.slop=s.slop>l.slop?s.slop:l.slop;t.pair=e;a.length=0;for(var u=0;u<r.length;u++){var f=r[u],d=f.body===s?f.index:c+f.index,p=i[d];p?a.push(p):a.push(i[d]=o.create(f))}};\n/**\n         * Set a pair as active or inactive.\n         * @method setActive\n         * @param {pair} pair\n         * @param {bool} isActive\n         * @param {number} timestamp\n         */i.setActive=function(e,t,n){if(t){e.isActive=true;e.timeUpdated=n}else{e.isActive=false;e.activeContacts.length=0}};\n/**\n         * Get the id for the given pair.\n         * @method id\n         * @param {body} bodyA\n         * @param {body} bodyB\n         * @return {string} Unique pairId\n         */i.id=function(e,t){return e.id<t.id?\"A\"+e.id+\"B\"+t.id:\"A\"+t.id+\"B\"+e.id}})()},function(e,t,n){var i={};e.exports=i;var o=n(3);var r=n(2);var a=n(7);var s=n(1);var l=n(11);var c=n(0);(function(){i._warming=.4;i._torqueDampen=1;i._minLength=1e-6;\n/**\n         * Creates a new constraint.\n         * All properties have default values, and many are pre-calculated automatically based on other properties.\n         * To simulate a revolute constraint (or pin joint) set `length: 0` and a high `stiffness` value (e.g. `0.7` or above).\n         * If the constraint is unstable, try lowering the `stiffness` value and / or increasing `engine.constraintIterations`.\n         * For compound bodies, constraints must be applied to the parent body (not one of its parts).\n         * See the properties section below for detailed information on what you can pass via the `options` object.\n         * @method create\n         * @param {} options\n         * @return {constraint} constraint\n         */i.create=function(e){var t=e;t.bodyA&&!t.pointA&&(t.pointA={x:0,y:0});t.bodyB&&!t.pointB&&(t.pointB={x:0,y:0});var n=t.bodyA?r.add(t.bodyA.position,t.pointA):t.pointA,i=t.bodyB?r.add(t.bodyB.position,t.pointB):t.pointB,o=r.magnitude(r.sub(n,i));t.length=\"undefined\"!==typeof t.length?t.length:o;t.id=t.id||c.nextId();t.label=t.label||\"Constraint\";t.type=\"constraint\";t.stiffness=t.stiffness||(t.length>0?1:.7);t.damping=t.damping||0;t.angularStiffness=t.angularStiffness||0;t.angleA=t.bodyA?t.bodyA.angle:t.angleA;t.angleB=t.bodyB?t.bodyB.angle:t.angleB;t.plugin={};var a={visible:true,lineWidth:2,strokeStyle:\"#ffffff\",type:\"line\",anchors:true};if(0===t.length&&t.stiffness>.1){a.type=\"pin\";a.anchors=false}else t.stiffness<.9&&(a.type=\"spring\");t.render=c.extend(a,t.render);return t};\n/**\n         * Prepares for solving by constraint warming.\n         * @private\n         * @method preSolveAll\n         * @param {body[]} bodies\n         */i.preSolveAll=function(e){for(var t=0;t<e.length;t+=1){var n=e[t],i=n.constraintImpulse;if(!(n.isStatic||0===i.x&&0===i.y&&0===i.angle)){n.position.x+=i.x;n.position.y+=i.y;n.angle+=i.angle}}};\n/**\n         * Solves all constraints in a list of collisions.\n         * @private\n         * @method solveAll\n         * @param {constraint[]} constraints\n         * @param {number} timeScale\n         */i.solveAll=function(e,t){for(var n=0;n<e.length;n+=1){var o=e[n],r=!o.bodyA||o.bodyA&&o.bodyA.isStatic,a=!o.bodyB||o.bodyB&&o.bodyB.isStatic;(r||a)&&i.solve(e[n],t)}for(n=0;n<e.length;n+=1){o=e[n];r=!o.bodyA||o.bodyA&&o.bodyA.isStatic;a=!o.bodyB||o.bodyB&&o.bodyB.isStatic;r||a||i.solve(e[n],t)}};\n/**\n         * Solves a distance constraint with Gauss-Siedel method.\n         * @private\n         * @method solve\n         * @param {constraint} constraint\n         * @param {number} timeScale\n         */i.solve=function(e,t){var n=e.bodyA,o=e.bodyB,a=e.pointA,s=e.pointB;if(n||o){if(n&&!n.isStatic){r.rotate(a,n.angle-e.angleA,a);e.angleA=n.angle}if(o&&!o.isStatic){r.rotate(s,o.angle-e.angleB,s);e.angleB=o.angle}var l=a,c=s;n&&(l=r.add(n.position,a));o&&(c=r.add(o.position,s));if(l&&c){var u=r.sub(l,c),f=r.magnitude(u);f<i._minLength&&(f=i._minLength);var d,p,v,y,m,g=(f-e.length)/f,x=e.stiffness<1?e.stiffness*t:e.stiffness,h=r.mult(u,g*x),b=(n?n.inverseMass:0)+(o?o.inverseMass:0),S=(n?n.inverseInertia:0)+(o?o.inverseInertia:0),w=b+S;if(e.damping){var _=r.create();v=r.div(u,f);m=r.sub(o&&r.sub(o.position,o.positionPrev)||_,n&&r.sub(n.position,n.positionPrev)||_);y=r.dot(v,m)}if(n&&!n.isStatic){p=n.inverseMass/b;n.constraintImpulse.x-=h.x*p;n.constraintImpulse.y-=h.y*p;n.position.x-=h.x*p;n.position.y-=h.y*p;if(e.damping){n.positionPrev.x-=e.damping*v.x*y*p;n.positionPrev.y-=e.damping*v.y*y*p}d=r.cross(a,h)/w*i._torqueDampen*n.inverseInertia*(1-e.angularStiffness);n.constraintImpulse.angle-=d;n.angle-=d}if(o&&!o.isStatic){p=o.inverseMass/b;o.constraintImpulse.x+=h.x*p;o.constraintImpulse.y+=h.y*p;o.position.x+=h.x*p;o.position.y+=h.y*p;if(e.damping){o.positionPrev.x+=e.damping*v.x*y*p;o.positionPrev.y+=e.damping*v.y*y*p}d=r.cross(s,h)/w*i._torqueDampen*o.inverseInertia*(1-e.angularStiffness);o.constraintImpulse.angle+=d;o.angle+=d}}}};\n/**\n         * Performs body updates required after solving constraints.\n         * @private\n         * @method postSolveAll\n         * @param {body[]} bodies\n         */i.postSolveAll=function(e){for(var t=0;t<e.length;t++){var n=e[t],c=n.constraintImpulse;if(!(n.isStatic||0===c.x&&0===c.y&&0===c.angle)){a.set(n,false);for(var u=0;u<n.parts.length;u++){var f=n.parts[u];o.translate(f.vertices,c);if(u>0){f.position.x+=c.x;f.position.y+=c.y}if(0!==c.angle){o.rotate(f.vertices,c.angle,n.position);l.rotate(f.axes,c.angle);u>0&&r.rotateAbout(f.position,c.angle,n.position,f.position)}s.update(f.bounds,f.vertices,n.velocity)}c.angle*=i._warming;c.x*=i._warming;c.y*=i._warming}}};\n/**\n         * Returns the world-space position of `constraint.pointA`, accounting for `constraint.bodyA`.\n         * @method pointAWorld\n         * @param {constraint} constraint\n         * @returns {vector} the world-space position\n         */i.pointAWorld=function(e){return{x:(e.bodyA?e.bodyA.position.x:0)+e.pointA.x,y:(e.bodyA?e.bodyA.position.y:0)+e.pointA.y}};\n/**\n         * Returns the world-space position of `constraint.pointB`, accounting for `constraint.bodyB`.\n         * @method pointBWorld\n         * @param {constraint} constraint\n         * @returns {vector} the world-space position\n         */i.pointBWorld=function(e){return{x:(e.bodyB?e.bodyB.position.x:0)+e.pointB.x,y:(e.bodyB?e.bodyB.position.y:0)+e.pointB.y}};\n/**\n         * An integer `Number` uniquely identifying number generated in `Composite.create` by `Common.nextId`.\n         *\n         * @property id\n         * @type number\n         */\n/**\n         * A `String` denoting the type of object.\n         *\n         * @property type\n         * @type string\n         * @default \"constraint\"\n         * @readOnly\n         */\n/**\n         * An arbitrary `String` name to help the user identify and manage bodies.\n         *\n         * @property label\n         * @type string\n         * @default \"Constraint\"\n         */\n/**\n         * An `Object` that defines the rendering properties to be consumed by the module `Matter.Render`.\n         *\n         * @property render\n         * @type object\n         */\n/**\n         * A flag that indicates if the constraint should be rendered.\n         *\n         * @property render.visible\n         * @type boolean\n         * @default true\n         */\n/**\n         * A `Number` that defines the line width to use when rendering the constraint outline.\n         * A value of `0` means no outline will be rendered.\n         *\n         * @property render.lineWidth\n         * @type number\n         * @default 2\n         */\n/**\n         * A `String` that defines the stroke style to use when rendering the constraint outline.\n         * It is the same as when using a canvas, so it accepts CSS style property values.\n         *\n         * @property render.strokeStyle\n         * @type string\n         * @default a random colour\n         */\n/**\n         * A `String` that defines the constraint rendering type. \n         * The possible values are 'line', 'pin', 'spring'.\n         * An appropriate render type will be automatically chosen unless one is given in options.\n         *\n         * @property render.type\n         * @type string\n         * @default 'line'\n         */\n/**\n         * A `Boolean` that defines if the constraint's anchor points should be rendered.\n         *\n         * @property render.anchors\n         * @type boolean\n         * @default true\n         */\n/**\n         * The first possible `Body` that this constraint is attached to.\n         *\n         * @property bodyA\n         * @type body\n         * @default null\n         */\n/**\n         * The second possible `Body` that this constraint is attached to.\n         *\n         * @property bodyB\n         * @type body\n         * @default null\n         */\n/**\n         * A `Vector` that specifies the offset of the constraint from center of the `constraint.bodyA` if defined, otherwise a world-space position.\n         *\n         * @property pointA\n         * @type vector\n         * @default { x: 0, y: 0 }\n         */\n/**\n         * A `Vector` that specifies the offset of the constraint from center of the `constraint.bodyB` if defined, otherwise a world-space position.\n         *\n         * @property pointB\n         * @type vector\n         * @default { x: 0, y: 0 }\n         */\n/**\n         * A `Number` that specifies the stiffness of the constraint, i.e. the rate at which it returns to its resting `constraint.length`.\n         * A value of `1` means the constraint should be very stiff.\n         * A value of `0.2` means the constraint acts like a soft spring.\n         *\n         * @property stiffness\n         * @type number\n         * @default 1\n         */\n/**\n         * A `Number` that specifies the damping of the constraint, \n         * i.e. the amount of resistance applied to each body based on their velocities to limit the amount of oscillation.\n         * Damping will only be apparent when the constraint also has a very low `stiffness`.\n         * A value of `0.1` means the constraint will apply heavy damping, resulting in little to no oscillation.\n         * A value of `0` means the constraint will apply no damping.\n         *\n         * @property damping\n         * @type number\n         * @default 0\n         */\n/**\n         * A `Number` that specifies the target resting length of the constraint. \n         * It is calculated automatically in `Constraint.create` from initial positions of the `constraint.bodyA` and `constraint.bodyB`.\n         *\n         * @property length\n         * @type number\n         */\n/**\n         * An object reserved for storing plugin-specific properties.\n         *\n         * @property plugin\n         * @type {}\n         */})()},function(e,t,n){var i={};e.exports=i;var o=n(2);var r=n(0);(function(){\n/**\n         * Creates a new set of axes from the given vertices.\n         * @method fromVertices\n         * @param {vertices} vertices\n         * @return {axes} A new axes from the given vertices\n         */\ni.fromVertices=function(e){var t={};for(var n=0;n<e.length;n++){var i=(n+1)%e.length,a=o.normalise({x:e[i].y-e[n].y,y:e[n].x-e[i].x}),s=0===a.y?Infinity:a.x/a.y;s=s.toFixed(3).toString();t[s]=a}return r.values(t)};\n/**\n         * Rotates a set of axes by the given angle.\n         * @method rotate\n         * @param {axes} axes\n         * @param {number} angle\n         */i.rotate=function(e,t){if(0!==t){var n=Math.cos(t),i=Math.sin(t);for(var o=0;o<e.length;o++){var r,a=e[o];r=a.x*n-a.y*i;a.y=a.x*i+a.y*n;a.x=r}}}})()},function(e,t,n){var i={};e.exports=i;var o=n(3);var r=n(0);var a=n(6);var s=n(1);var l=n(2);(function(){\n/**\n         * Creates a new rigid body model with a rectangle hull. \n         * The options parameter is an object that specifies any properties you wish to override the defaults.\n         * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n         * @method rectangle\n         * @param {number} x\n         * @param {number} y\n         * @param {number} width\n         * @param {number} height\n         * @param {object} [options]\n         * @return {body} A new rectangle body\n         */\ni.rectangle=function(e,t,n,i,s){s=s||{};var l={label:\"Rectangle Body\",position:{x:e,y:t},vertices:o.fromPath(\"L 0 0 L \"+n+\" 0 L \"+n+\" \"+i+\" L 0 \"+i)};if(s.chamfer){var c=s.chamfer;l.vertices=o.chamfer(l.vertices,c.radius,c.quality,c.qualityMin,c.qualityMax);delete s.chamfer}return a.create(r.extend({},l,s))};\n/**\n         * Creates a new rigid body model with a trapezoid hull. \n         * The options parameter is an object that specifies any properties you wish to override the defaults.\n         * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n         * @method trapezoid\n         * @param {number} x\n         * @param {number} y\n         * @param {number} width\n         * @param {number} height\n         * @param {number} slope\n         * @param {object} [options]\n         * @return {body} A new trapezoid body\n         */i.trapezoid=function(e,t,n,i,s,l){l=l||{};s*=.5;var c=(1-2*s)*n;var u,f=n*s,d=f+c,p=d+f;u=s<.5?\"L 0 0 L \"+f+\" \"+-i+\" L \"+d+\" \"+-i+\" L \"+p+\" 0\":\"L 0 0 L \"+d+\" \"+-i+\" L \"+p+\" 0\";var v={label:\"Trapezoid Body\",position:{x:e,y:t},vertices:o.fromPath(u)};if(l.chamfer){var y=l.chamfer;v.vertices=o.chamfer(v.vertices,y.radius,y.quality,y.qualityMin,y.qualityMax);delete l.chamfer}return a.create(r.extend({},v,l))};\n/**\n         * Creates a new rigid body model with a circle hull. \n         * The options parameter is an object that specifies any properties you wish to override the defaults.\n         * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n         * @method circle\n         * @param {number} x\n         * @param {number} y\n         * @param {number} radius\n         * @param {object} [options]\n         * @param {number} [maxSides]\n         * @return {body} A new circle body\n         */i.circle=function(e,t,n,o,a){o=o||{};var s={label:\"Circle Body\",circleRadius:n};a=a||25;var l=Math.ceil(Math.max(10,Math.min(a,n)));l%2===1&&(l+=1);return i.polygon(e,t,l,n,r.extend({},s,o))};\n/**\n         * Creates a new rigid body model with a regular polygon hull with the given number of sides. \n         * The options parameter is an object that specifies any properties you wish to override the defaults.\n         * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n         * @method polygon\n         * @param {number} x\n         * @param {number} y\n         * @param {number} sides\n         * @param {number} radius\n         * @param {object} [options]\n         * @return {body} A new regular polygon body\n         */i.polygon=function(e,t,n,s,l){l=l||{};if(n<3)return i.circle(e,t,s,l);var c=2*Math.PI/n,u=\"\",f=.5*c;for(var d=0;d<n;d+=1){var p=f+d*c,v=Math.cos(p)*s,y=Math.sin(p)*s;u+=\"L \"+v.toFixed(3)+\" \"+y.toFixed(3)+\" \"}var m={label:\"Polygon Body\",position:{x:e,y:t},vertices:o.fromPath(u)};if(l.chamfer){var g=l.chamfer;m.vertices=o.chamfer(m.vertices,g.radius,g.quality,g.qualityMin,g.qualityMax);delete l.chamfer}return a.create(r.extend({},m,l))};\n/**\n         * Utility to create a compound body based on set(s) of vertices.\n         * \n         * _Note:_ To optionally enable automatic concave vertices decomposition the [poly-decomp](https://github.com/schteppe/poly-decomp.js) \n         * package must be first installed and provided see `Common.setDecomp`, otherwise the convex hull of each vertex set will be used.\n         * \n         * The resulting vertices are reorientated about their centre of mass,\n         * and offset such that `body.position` corresponds to this point.\n         * \n         * The resulting offset may be found if needed by subtracting `body.bounds` from the original input bounds.\n         * To later move the centre of mass see `Body.setCentre`.\n         * \n         * Note that automatic conconcave decomposition results are not always optimal. \n         * For best results, simplify the input vertices as much as possible first.\n         * By default this function applies some addtional simplification to help.\n         * \n         * Some outputs may also require further manual processing afterwards to be robust.\n         * In particular some parts may need to be overlapped to avoid collision gaps.\n         * Thin parts and sharp points should be avoided or removed where possible.\n         *\n         * The options parameter object specifies any `Matter.Body` properties you wish to override the defaults.\n         * \n         * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n         * @method fromVertices\n         * @param {number} x\n         * @param {number} y\n         * @param {array} vertexSets One or more arrays of vertex points e.g. `[[{ x: 0, y: 0 }...], ...]`.\n         * @param {object} [options] The body options.\n         * @param {bool} [flagInternal=false] Optionally marks internal edges with `isInternal`.\n         * @param {number} [removeCollinear=0.01] Threshold when simplifying vertices along the same edge.\n         * @param {number} [minimumArea=10] Threshold when removing small parts.\n         * @param {number} [removeDuplicatePoints=0.01] Threshold when simplifying nearby vertices.\n         * @return {body}\n         */i.fromVertices=function(e,t,n,i,c,u,f,d){var p,v,y,m,g,x,h,b,S,w,_,A=r.getDecomp();p=Boolean(A&&A.quickDecomp);i=i||{};y=[];c=\"undefined\"!==typeof c&&c;u=\"undefined\"!==typeof u?u:.01;f=\"undefined\"!==typeof f?f:10;d=\"undefined\"!==typeof d?d:.01;r.isArray(n[0])||(n=[n]);for(w=0;w<n.length;w+=1){x=n[w];m=o.isConvex(x);g=!m;g&&!p&&r.warnOnce(\"Bodies.fromVertices: Install the 'poly-decomp' library and use Common.setDecomp or provide 'decomp' as a global to decompose concave vertices.\");if(m||!p){x=m?o.clockwiseSort(x):o.hull(x);y.push({position:{x:e,y:t},vertices:x})}else{var P=x.map((function(e){return[e.x,e.y]}));A.makeCCW(P);false!==u&&A.removeCollinearPoints(P,u);false!==d&&A.removeDuplicatePoints&&A.removeDuplicatePoints(P,d);var C=A.quickDecomp(P);for(h=0;h<C.length;h++){var k=C[h];var M=k.map((function(e){return{x:e[0],y:e[1]}}));f>0&&o.area(M)<f||y.push({position:o.centre(M),vertices:M})}}}for(h=0;h<y.length;h++)y[h]=a.create(r.extend(y[h],i));if(c){var B=5;for(h=0;h<y.length;h++){var I=y[h];for(b=h+1;b<y.length;b++){var T=y[b];if(s.overlaps(I.bounds,T.bounds)){var R=I.vertices,E=T.vertices;for(S=0;S<I.vertices.length;S++)for(_=0;_<T.vertices.length;_++){var V=l.magnitudeSquared(l.sub(R[(S+1)%R.length],E[_])),L=l.magnitudeSquared(l.sub(R[S],E[(_+1)%E.length]));if(V<B&&L<B){R[S].isInternal=true;E[_].isInternal=true}}}}}}if(y.length>1){v=a.create(r.extend({parts:y.slice(0)},i));a.setPosition(v,{x:e,y:t});return v}return y[0]}})()},function(e,t,n){var i={};e.exports=i;var o=n(0);(function(){\n/**\n         * Creates a mouse input.\n         * @method create\n         * @param {HTMLElement} element\n         * @return {mouse} A new mouse\n         */\ni.create=function(e){var t={};e||o.log(\"Mouse.create: element was undefined, defaulting to document.body\",\"warn\");t.element=e||document.body;t.absolute={x:0,y:0};t.position={x:0,y:0};t.mousedownPosition={x:0,y:0};t.mouseupPosition={x:0,y:0};t.offset={x:0,y:0};t.scale={x:1,y:1};t.wheelDelta=0;t.button=-1;t.pixelRatio=parseInt(t.element.getAttribute(\"data-pixel-ratio\"),10)||1;t.sourceEvents={mousemove:null,mousedown:null,mouseup:null,mousewheel:null};t.mousemove=function(e){var n=i._getRelativeMousePosition(e,t.element,t.pixelRatio),o=e.changedTouches;if(o){t.button=0;e.preventDefault()}t.absolute.x=n.x;t.absolute.y=n.y;t.position.x=t.absolute.x*t.scale.x+t.offset.x;t.position.y=t.absolute.y*t.scale.y+t.offset.y;t.sourceEvents.mousemove=e};t.mousedown=function(e){var n=i._getRelativeMousePosition(e,t.element,t.pixelRatio),o=e.changedTouches;if(o){t.button=0;e.preventDefault()}else t.button=e.button;t.absolute.x=n.x;t.absolute.y=n.y;t.position.x=t.absolute.x*t.scale.x+t.offset.x;t.position.y=t.absolute.y*t.scale.y+t.offset.y;t.mousedownPosition.x=t.position.x;t.mousedownPosition.y=t.position.y;t.sourceEvents.mousedown=e};t.mouseup=function(e){var n=i._getRelativeMousePosition(e,t.element,t.pixelRatio),o=e.changedTouches;o&&e.preventDefault();t.button=-1;t.absolute.x=n.x;t.absolute.y=n.y;t.position.x=t.absolute.x*t.scale.x+t.offset.x;t.position.y=t.absolute.y*t.scale.y+t.offset.y;t.mouseupPosition.x=t.position.x;t.mouseupPosition.y=t.position.y;t.sourceEvents.mouseup=e};t.mousewheel=function(e){t.wheelDelta=Math.max(-1,Math.min(1,e.wheelDelta||-e.detail));e.preventDefault()};i.setElement(t,t.element);return t};\n/**\n         * Sets the element the mouse is bound to (and relative to).\n         * @method setElement\n         * @param {mouse} mouse\n         * @param {HTMLElement} element\n         */i.setElement=function(e,t){e.element=t;t.addEventListener(\"mousemove\",e.mousemove);t.addEventListener(\"mousedown\",e.mousedown);t.addEventListener(\"mouseup\",e.mouseup);t.addEventListener(\"mousewheel\",e.mousewheel);t.addEventListener(\"DOMMouseScroll\",e.mousewheel);t.addEventListener(\"touchmove\",e.mousemove);t.addEventListener(\"touchstart\",e.mousedown);t.addEventListener(\"touchend\",e.mouseup)};\n/**\n         * Clears all captured source events.\n         * @method clearSourceEvents\n         * @param {mouse} mouse\n         */i.clearSourceEvents=function(e){e.sourceEvents.mousemove=null;e.sourceEvents.mousedown=null;e.sourceEvents.mouseup=null;e.sourceEvents.mousewheel=null;e.wheelDelta=0};\n/**\n         * Sets the mouse position offset.\n         * @method setOffset\n         * @param {mouse} mouse\n         * @param {vector} offset\n         */i.setOffset=function(e,t){e.offset.x=t.x;e.offset.y=t.y;e.position.x=e.absolute.x*e.scale.x+e.offset.x;e.position.y=e.absolute.y*e.scale.y+e.offset.y};\n/**\n         * Sets the mouse position scale.\n         * @method setScale\n         * @param {mouse} mouse\n         * @param {vector} scale\n         */i.setScale=function(e,t){e.scale.x=t.x;e.scale.y=t.y;e.position.x=e.absolute.x*e.scale.x+e.offset.x;e.position.y=e.absolute.y*e.scale.y+e.offset.y};\n/**\n         * Gets the mouse position relative to an element given a screen pixel ratio.\n         * @method _getRelativeMousePosition\n         * @private\n         * @param {} event\n         * @param {} element\n         * @param {number} pixelRatio\n         * @return {}\n         */i._getRelativeMousePosition=function(e,t,n){var i,o,r=t.getBoundingClientRect(),a=document.documentElement||document.body.parentNode||document.body,s=void 0!==window.pageXOffset?window.pageXOffset:a.scrollLeft,l=void 0!==window.pageYOffset?window.pageYOffset:a.scrollTop,c=e.changedTouches;if(c){i=c[0].pageX-r.left-s;o=c[0].pageY-r.top-l}else{i=e.pageX-r.left-s;o=e.pageY-r.top-l}return{x:i/(t.clientWidth/(t.width||t.clientWidth)*n),y:o/(t.clientHeight/(t.height||t.clientHeight)*n)}}})()},function(e,t,n){var i={};e.exports=i;var o=n(0);var r=n(8);(function(){\n/**\n         * Creates a new collision detector.\n         * @method create\n         * @param {} options\n         * @return {detector} A new collision detector\n         */\ni.create=function(e){var t={bodies:[],pairs:null};return o.extend(t,e)};\n/**\n         * Sets the list of bodies in the detector.\n         * @method setBodies\n         * @param {detector} detector\n         * @param {body[]} bodies\n         */i.setBodies=function(e,t){e.bodies=t.slice(0)};\n/**\n         * Clears the detector including its list of bodies.\n         * @method clear\n         * @param {detector} detector\n         */i.clear=function(e){e.bodies=[]};\n/**\n         * Efficiently finds all collisions among all the bodies in `detector.bodies` using a broadphase algorithm.\n         * \n         * _Note:_ The specific ordering of collisions returned is not guaranteed between releases and may change for performance reasons.\n         * If a specific ordering is required then apply a sort to the resulting array.\n         * @method collisions\n         * @param {detector} detector\n         * @return {collision[]} collisions\n         */i.collisions=function(e){var t,n,o=[],a=e.pairs,s=e.bodies,l=s.length,c=i.canCollide,u=r.collides;s.sort(i._compareBoundsX);for(t=0;t<l;t++){var f=s[t],d=f.bounds,p=f.bounds.max.x,v=f.bounds.max.y,y=f.bounds.min.y,m=f.isStatic||f.isSleeping,g=f.parts.length,x=1===g;for(n=t+1;n<l;n++){var h=s[n],b=h.bounds;if(b.min.x>p)break;if(!(v<b.min.y||y>b.max.y)&&((!m||!h.isStatic&&!h.isSleeping)&&c(f.collisionFilter,h.collisionFilter))){var S=h.parts.length;if(x&&1===S){var w=u(f,h,a);w&&o.push(w)}else{var _=g>1?1:0,A=S>1?1:0;for(var P=_;P<g;P++){var C=f.parts[P];d=C.bounds;for(var k=A;k<S;k++){var M=h.parts[k];b=M.bounds;if(!(d.min.x>b.max.x||d.max.x<b.min.x||d.max.y<b.min.y||d.min.y>b.max.y)){w=u(C,M,a);w&&o.push(w)}}}}}}}return o};\n/**\n         * Returns `true` if both supplied collision filters will allow a collision to occur.\n         * See `body.collisionFilter` for more information.\n         * @method canCollide\n         * @param {} filterA\n         * @param {} filterB\n         * @return {bool} `true` if collision can occur\n         */i.canCollide=function(e,t){return e.group===t.group&&0!==e.group?e.group>0:0!==(e.mask&t.category)&&0!==(t.mask&e.category)};\n/**\n         * The comparison function used in the broadphase algorithm.\n         * Returns the signed delta of the bodies bounds on the x-axis.\n         * @private\n         * @method _sortCompare\n         * @param {body} bodyA\n         * @param {body} bodyB\n         * @return {number} The signed delta used for sorting\n         */i._compareBoundsX=function(e,t){return e.bounds.min.x-t.bounds.min.x};\n/**\n         * The array of `Matter.Body` between which the detector finds collisions.\n         * \n         * _Note:_ The order of bodies in this array _is not fixed_ and will be continually managed by the detector.\n         * @property bodies\n         * @type body[]\n         * @default []\n         */\n/**\n         * Optional. A `Matter.Pairs` object from which previous collision objects may be reused. Intended for internal `Matter.Engine` usage.\n         * @property pairs\n         * @type {pairs|null}\n         * @default null\n         */})()},function(e,t,n){var i={};e.exports=i;var o=n(0);(function(){i._registry={};\n/**\n         * Registers a plugin object so it can be resolved later by name.\n         * @method register\n         * @param plugin {} The plugin to register.\n         * @return {object} The plugin.\n         */i.register=function(e){i.isPlugin(e)||o.warn(\"Plugin.register:\",i.toString(e),\"does not implement all required fields.\");if(e.name in i._registry){var t=i._registry[e.name],n=i.versionParse(e.version).number,r=i.versionParse(t.version).number;if(n>r){o.warn(\"Plugin.register:\",i.toString(t),\"was upgraded to\",i.toString(e));i._registry[e.name]=e}else n<r?o.warn(\"Plugin.register:\",i.toString(t),\"can not be downgraded to\",i.toString(e)):e!==t&&o.warn(\"Plugin.register:\",i.toString(e),\"is already registered to different plugin object\")}else i._registry[e.name]=e;return e};\n/**\n         * Resolves a dependency to a plugin object from the registry if it exists. \n         * The `dependency` may contain a version, but only the name matters when resolving.\n         * @method resolve\n         * @param dependency {string} The dependency.\n         * @return {object} The plugin if resolved, otherwise `undefined`.\n         */i.resolve=function(e){return i._registry[i.dependencyParse(e).name]};\n/**\n         * Returns a pretty printed plugin name and version.\n         * @method toString\n         * @param plugin {} The plugin.\n         * @return {string} Pretty printed plugin name and version.\n         */i.toString=function(e){return\"string\"===typeof e?e:(e.name||\"anonymous\")+\"@\"+(e.version||e.range||\"0.0.0\")};\n/**\n         * Returns `true` if the object meets the minimum standard to be considered a plugin.\n         * This means it must define the following properties:\n         * - `name`\n         * - `version`\n         * - `install`\n         * @method isPlugin\n         * @param obj {} The obj to test.\n         * @return {boolean} `true` if the object can be considered a plugin otherwise `false`.\n         */i.isPlugin=function(e){return e&&e.name&&e.version&&e.install};\n/**\n         * Returns `true` if a plugin with the given `name` been installed on `module`.\n         * @method isUsed\n         * @param module {} The module.\n         * @param name {string} The plugin name.\n         * @return {boolean} `true` if a plugin with the given `name` been installed on `module`, otherwise `false`.\n         */i.isUsed=function(e,t){return e.used.indexOf(t)>-1};\n/**\n         * Returns `true` if `plugin.for` is applicable to `module` by comparing against `module.name` and `module.version`.\n         * If `plugin.for` is not specified then it is assumed to be applicable.\n         * The value of `plugin.for` is a string of the format `'module-name'` or `'module-name@version'`.\n         * @method isFor\n         * @param plugin {} The plugin.\n         * @param module {} The module.\n         * @return {boolean} `true` if `plugin.for` is applicable to `module`, otherwise `false`.\n         */i.isFor=function(e,t){var n=e.for&&i.dependencyParse(e.for);return!e.for||t.name===n.name&&i.versionSatisfies(t.version,n.range)};\n/**\n         * Installs the plugins by calling `plugin.install` on each plugin specified in `plugins` if passed, otherwise `module.uses`.\n         * For installing plugins on `Matter` see the convenience function `Matter.use`.\n         * Plugins may be specified either by their name or a reference to the plugin object.\n         * Plugins themselves may specify further dependencies, but each plugin is installed only once.\n         * Order is important, a topological sort is performed to find the best resulting order of installation.\n         * This sorting attempts to satisfy every dependency's requested ordering, but may not be exact in all cases.\n         * This function logs the resulting status of each dependency in the console, along with any warnings.\n         * - A green tick \u2705 indicates a dependency was resolved and installed.\n         * - An orange diamond \uD83D\uDD36 indicates a dependency was resolved but a warning was thrown for it or one if its dependencies.\n         * - A red cross \u274C indicates a dependency could not be resolved.\n         * Avoid calling this function multiple times on the same module unless you intend to manually control installation order.\n         * @method use\n         * @param module {} The module install plugins on.\n         * @param [plugins=module.uses] {} The plugins to install on module (optional, defaults to `module.uses`).\n         */i.use=function(e,t){e.uses=(e.uses||[]).concat(t||[]);if(0!==e.uses.length){var n=i.dependencies(e),r=o.topologicalSort(n),a=[];for(var s=0;s<r.length;s+=1)if(r[s]!==e.name){var l=i.resolve(r[s]);if(l){if(!i.isUsed(e,l.name)){if(!i.isFor(l,e)){o.warn(\"Plugin.use:\",i.toString(l),\"is for\",l.for,\"but installed on\",i.toString(e)+\".\");l._warned=true}if(l.install)l.install(e);else{o.warn(\"Plugin.use:\",i.toString(l),\"does not specify an install function.\");l._warned=true}if(l._warned){a.push(\"\uD83D\uDD36 \"+i.toString(l));delete l._warned}else a.push(\"\u2705 \"+i.toString(l));e.used.push(l.name)}}else a.push(\"\u274C \"+r[s])}a.length>0&&o.info(a.join(\"  \"))}else o.warn(\"Plugin.use:\",i.toString(e),\"does not specify any dependencies to install.\")};\n/**\n         * Recursively finds all of a module's dependencies and returns a flat dependency graph.\n         * @method dependencies\n         * @param module {} The module.\n         * @return {object} A dependency graph.\n         */i.dependencies=function(e,t){var n=i.dependencyParse(e),r=n.name;t=t||{};if(!(r in t)){e=i.resolve(e)||e;t[r]=o.map(e.uses||[],(function(t){i.isPlugin(t)&&i.register(t);var r=i.dependencyParse(t),a=i.resolve(t);if(a&&!i.versionSatisfies(a.version,r.range)){o.warn(\"Plugin.dependencies:\",i.toString(a),\"does not satisfy\",i.toString(r),\"used by\",i.toString(n)+\".\");a._warned=true;e._warned=true}else if(!a){o.warn(\"Plugin.dependencies:\",i.toString(t),\"used by\",i.toString(n),\"could not be resolved.\");e._warned=true}return r.name}));for(var a=0;a<t[r].length;a+=1)i.dependencies(t[r][a],t);return t}};\n/**\n         * Parses a dependency string into its components.\n         * The `dependency` is a string of the format `'module-name'` or `'module-name@version'`.\n         * See documentation for `Plugin.versionParse` for a description of the format.\n         * This function can also handle dependencies that are already resolved (e.g. a module object).\n         * @method dependencyParse\n         * @param dependency {string} The dependency of the format `'module-name'` or `'module-name@version'`.\n         * @return {object} The dependency parsed into its components.\n         */i.dependencyParse=function(e){if(o.isString(e)){var t=/^[\\w-]+(@(\\*|[\\^~]?\\d+\\.\\d+\\.\\d+(-[0-9A-Za-z-+]+)?))?$/;t.test(e)||o.warn(\"Plugin.dependencyParse:\",e,\"is not a valid dependency string.\");return{name:e.split(\"@\")[0],range:e.split(\"@\")[1]||\"*\"}}return{name:e.name,range:e.range||e.version}};\n/**\n         * Parses a version string into its components.  \n         * Versions are strictly of the format `x.y.z` (as in [semver](http://semver.org/)).\n         * Versions may optionally have a prerelease tag in the format `x.y.z-alpha`.\n         * Ranges are a strict subset of [npm ranges](https://docs.npmjs.com/misc/semver#advanced-range-syntax).\n         * Only the following range types are supported:\n         * - Tilde ranges e.g. `~1.2.3`\n         * - Caret ranges e.g. `^1.2.3`\n         * - Greater than ranges e.g. `>1.2.3`\n         * - Greater than or equal ranges e.g. `>=1.2.3`\n         * - Exact version e.g. `1.2.3`\n         * - Any version `*`\n         * @method versionParse\n         * @param range {string} The version string.\n         * @return {object} The version range parsed into its components.\n         */i.versionParse=function(e){var t=/^(\\*)|(\\^|~|>=|>)?\\s*((\\d+)\\.(\\d+)\\.(\\d+))(-[0-9A-Za-z-+]+)?$/;t.test(e)||o.warn(\"Plugin.versionParse:\",e,\"is not a valid version or range.\");var n=t.exec(e);var i=Number(n[4]);var r=Number(n[5]);var a=Number(n[6]);return{isRange:Boolean(n[1]||n[2]),version:n[3],range:e,operator:n[1]||n[2]||\"\",major:i,minor:r,patch:a,parts:[i,r,a],prerelease:n[7],number:1e8*i+1e4*r+a}};\n/**\n         * Returns `true` if `version` satisfies the given `range`.\n         * See documentation for `Plugin.versionParse` for a description of the format.\n         * If a version or range is not specified, then any version (`*`) is assumed to satisfy.\n         * @method versionSatisfies\n         * @param version {string} The version string.\n         * @param range {string} The range string.\n         * @return {boolean} `true` if `version` satisfies `range`, otherwise `false`.\n         */i.versionSatisfies=function(e,t){t=t||\"*\";var n=i.versionParse(t),o=i.versionParse(e);if(n.isRange){if(\"*\"===n.operator||\"*\"===e)return true;if(\">\"===n.operator)return o.number>n.number;if(\">=\"===n.operator)return o.number>=n.number;if(\"~\"===n.operator)return o.major===n.major&&o.minor===n.minor&&o.patch>=n.patch;if(\"^\"===n.operator)return n.major>0?o.major===n.major&&o.number>=n.number:n.minor>0?o.minor===n.minor&&o.patch>=n.patch:o.patch===n.patch}return e===t||\"*\"===e}})()},function(e,t,n){var i={};e.exports=i;var o=n(0);var r=n(5);var a=n(1);var s=n(4);var l=n(2);var c=n(13);(function(){var e,t;if(\"undefined\"!==typeof window){e=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.msRequestAnimationFrame||function(e){window.setTimeout((function(){e(o.now())}),1e3/60)};t=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame||window.msCancelAnimationFrame}i._goodFps=30;i._goodDelta=1e3/60;\n/**\n         * Creates a new renderer. The options parameter is an object that specifies any properties you wish to override the defaults.\n         * All properties have default values, and many are pre-calculated automatically based on other properties.\n         * See the properties section below for detailed information on what you can pass via the `options` object.\n         * @method create\n         * @param {object} [options]\n         * @return {render} A new renderer\n         */i.create=function(e){var t={controller:i,engine:null,element:null,canvas:null,mouse:null,frameRequestId:null,timing:{historySize:60,delta:0,deltaHistory:[],lastTime:0,lastTimestamp:0,lastElapsed:0,timestampElapsed:0,timestampElapsedHistory:[],engineDeltaHistory:[],engineElapsedHistory:[],elapsedHistory:[]},options:{width:800,height:600,pixelRatio:1,background:\"#14151f\",wireframeBackground:\"#14151f\",hasBounds:!!e.bounds,enabled:true,wireframes:true,showSleeping:true,showDebug:false,showStats:false,showPerformance:false,showBounds:false,showVelocity:false,showCollisions:false,showSeparations:false,showAxes:false,showPositions:false,showAngleIndicator:false,showIds:false,showVertexNumbers:false,showConvexHulls:false,showInternalEdges:false,showMousePosition:false}};var n=o.extend(t,e);if(n.canvas){n.canvas.width=n.options.width||n.canvas.width;n.canvas.height=n.options.height||n.canvas.height}n.mouse=e.mouse;n.engine=e.engine;n.canvas=n.canvas||_createCanvas(n.options.width,n.options.height);n.context=n.canvas.getContext(\"2d\");n.textures={};n.bounds=n.bounds||{min:{x:0,y:0},max:{x:n.canvas.width,y:n.canvas.height}};n.options.showBroadphase=false;1!==n.options.pixelRatio&&i.setPixelRatio(n,n.options.pixelRatio);o.isElement(n.element)?n.element.appendChild(n.canvas):n.canvas.parentNode||o.log(\"Render.create: options.element was undefined, render.canvas was created but not appended\",\"warn\");return n};\n/**\n         * Continuously updates the render canvas on the `requestAnimationFrame` event.\n         * @method run\n         * @param {render} render\n         */i.run=function(t){(function loop(n){t.frameRequestId=e(loop);_updateTiming(t,n);i.world(t,n);(t.options.showStats||t.options.showDebug)&&i.stats(t,t.context,n);(t.options.showPerformance||t.options.showDebug)&&i.performance(t,t.context,n)})()};\n/**\n         * Ends execution of `Render.run` on the given `render`, by canceling the animation frame request event loop.\n         * @method stop\n         * @param {render} render\n         */i.stop=function(e){t(e.frameRequestId)};\n/**\n         * Sets the pixel ratio of the renderer and updates the canvas.\n         * To automatically detect the correct ratio, pass the string `'auto'` for `pixelRatio`.\n         * @method setPixelRatio\n         * @param {render} render\n         * @param {number} pixelRatio\n         */i.setPixelRatio=function(e,t){var n=e.options,i=e.canvas;\"auto\"===t&&(t=_getPixelRatio(i));n.pixelRatio=t;i.setAttribute(\"data-pixel-ratio\",t);i.width=n.width*t;i.height=n.height*t;i.style.width=n.width+\"px\";i.style.height=n.height+\"px\"};\n/**\n         * Positions and sizes the viewport around the given object bounds.\n         * Objects must have at least one of the following properties:\n         * - `object.bounds`\n         * - `object.position`\n         * - `object.min` and `object.max`\n         * - `object.x` and `object.y`\n         * @method lookAt\n         * @param {render} render\n         * @param {object[]} objects\n         * @param {vector} [padding]\n         * @param {bool} [center=true]\n         */i.lookAt=function(e,t,n,i){i=\"undefined\"===typeof i||i;t=o.isArray(t)?t:[t];n=n||{x:0,y:0};var r={min:{x:Infinity,y:Infinity},max:{x:-Infinity,y:-Infinity}};for(var a=0;a<t.length;a+=1){var s=t[a],l=s.bounds?s.bounds.min:s.min||s.position||s,u=s.bounds?s.bounds.max:s.max||s.position||s;if(l&&u){l.x<r.min.x&&(r.min.x=l.x);u.x>r.max.x&&(r.max.x=u.x);l.y<r.min.y&&(r.min.y=l.y);u.y>r.max.y&&(r.max.y=u.y)}}var f=r.max.x-r.min.x+2*n.x,d=r.max.y-r.min.y+2*n.y,p=e.canvas.height,v=e.canvas.width,y=v/p,m=f/d,g=1,x=1;m>y?x=m/y:g=y/m;e.options.hasBounds=true;e.bounds.min.x=r.min.x;e.bounds.max.x=r.min.x+f*g;e.bounds.min.y=r.min.y;e.bounds.max.y=r.min.y+d*x;if(i){e.bounds.min.x+=.5*f-f*g*.5;e.bounds.max.x+=.5*f-f*g*.5;e.bounds.min.y+=.5*d-d*x*.5;e.bounds.max.y+=.5*d-d*x*.5}e.bounds.min.x-=n.x;e.bounds.max.x-=n.x;e.bounds.min.y-=n.y;e.bounds.max.y-=n.y;if(e.mouse){c.setScale(e.mouse,{x:(e.bounds.max.x-e.bounds.min.x)/e.canvas.width,y:(e.bounds.max.y-e.bounds.min.y)/e.canvas.height});c.setOffset(e.mouse,e.bounds.min)}};\n/**\n         * Applies viewport transforms based on `render.bounds` to a render context.\n         * @method startViewTransform\n         * @param {render} render\n         */i.startViewTransform=function(e){var t=e.bounds.max.x-e.bounds.min.x,n=e.bounds.max.y-e.bounds.min.y,i=t/e.options.width,o=n/e.options.height;e.context.setTransform(e.options.pixelRatio/i,0,0,e.options.pixelRatio/o,0,0);e.context.translate(-e.bounds.min.x,-e.bounds.min.y)};\n/**\n         * Resets all transforms on the render context.\n         * @method endViewTransform\n         * @param {render} render\n         */i.endViewTransform=function(e){e.context.setTransform(e.options.pixelRatio,0,0,e.options.pixelRatio,0,0)};\n/**\n         * Renders the given `engine`'s `Matter.World` object.\n         * This is the entry point for all rendering and should be called every time the scene changes.\n         * @method world\n         * @param {render} render\n         */i.world=function(e,t){var n=o.now(),u=e.engine,f=u.world,d=e.canvas,p=e.context,v=e.options,y=e.timing;var m,g=r.allBodies(f),x=r.allConstraints(f),h=v.wireframes?v.wireframeBackground:v.background,b=[],S=[];var w={timestamp:u.timing.timestamp};s.trigger(e,\"beforeRender\",w);e.currentBackground!==h&&_applyBackground(e,h);p.globalCompositeOperation=\"source-in\";p.fillStyle=\"transparent\";p.fillRect(0,0,d.width,d.height);p.globalCompositeOperation=\"source-over\";if(v.hasBounds){for(m=0;m<g.length;m++){var _=g[m];a.overlaps(_.bounds,e.bounds)&&b.push(_)}for(m=0;m<x.length;m++){var A=x[m],P=A.bodyA,C=A.bodyB,k=A.pointA,M=A.pointB;P&&(k=l.add(P.position,A.pointA));C&&(M=l.add(C.position,A.pointB));k&&M&&((a.contains(e.bounds,k)||a.contains(e.bounds,M))&&S.push(A))}i.startViewTransform(e);if(e.mouse){c.setScale(e.mouse,{x:(e.bounds.max.x-e.bounds.min.x)/e.options.width,y:(e.bounds.max.y-e.bounds.min.y)/e.options.height});c.setOffset(e.mouse,e.bounds.min)}}else{S=x;b=g;1!==e.options.pixelRatio&&e.context.setTransform(e.options.pixelRatio,0,0,e.options.pixelRatio,0,0)}if(!v.wireframes||u.enableSleeping&&v.showSleeping)i.bodies(e,b,p);else{v.showConvexHulls&&i.bodyConvexHulls(e,b,p);i.bodyWireframes(e,b,p)}v.showBounds&&i.bodyBounds(e,b,p);(v.showAxes||v.showAngleIndicator)&&i.bodyAxes(e,b,p);v.showPositions&&i.bodyPositions(e,b,p);v.showVelocity&&i.bodyVelocity(e,b,p);v.showIds&&i.bodyIds(e,b,p);v.showSeparations&&i.separations(e,u.pairs.list,p);v.showCollisions&&i.collisions(e,u.pairs.list,p);v.showVertexNumbers&&i.vertexNumbers(e,b,p);v.showMousePosition&&i.mousePosition(e,e.mouse,p);i.constraints(S,p);v.hasBounds&&i.endViewTransform(e);s.trigger(e,\"afterRender\",w);y.lastElapsed=o.now()-n};\n/**\n         * Renders statistics about the engine and world useful for debugging.\n         * @private\n         * @method stats\n         * @param {render} render\n         * @param {RenderingContext} context\n         * @param {Number} time\n         */i.stats=function(e,t,n){var i=e.engine,o=i.world,a=r.allBodies(o),s=0,l=55,c=44,u=0,f=0;for(var d=0;d<a.length;d+=1)s+=a[d].parts.length;var p={Part:s,Body:a.length,Cons:r.allConstraints(o).length,Comp:r.allComposites(o).length,Pair:i.pairs.list.length};t.fillStyle=\"#0e0f19\";t.fillRect(u,f,5.5*l,c);t.font=\"12px Arial\";t.textBaseline=\"top\";t.textAlign=\"right\";for(var v in p){var y=p[v];t.fillStyle=\"#aaa\";t.fillText(v,u+l,f+8);t.fillStyle=\"#eee\";t.fillText(y,u+l,f+26);u+=l}};\n/**\n         * Renders engine and render performance information.\n         * @private\n         * @method performance\n         * @param {render} render\n         * @param {RenderingContext} context\n         */i.performance=function(e,t){var n=e.engine,o=e.timing,r=o.deltaHistory,a=o.elapsedHistory,s=o.timestampElapsedHistory,l=o.engineDeltaHistory,c=o.engineElapsedHistory,u=n.timing.lastDelta;var f=_mean(r),d=_mean(a),p=_mean(l),v=_mean(c),y=_mean(s),m=y/f||0,g=1e3/f||0;var x=4,h=12,b=60,S=34,w=10,_=69;t.fillStyle=\"#0e0f19\";t.fillRect(0,50,4*h+5*b+22,S);i.status(t,w,_,b,x,r.length,Math.round(g)+\" fps\",g/i._goodFps,(function(e){return r[e]/f-1}));i.status(t,w+h+b,_,b,x,l.length,u.toFixed(2)+\" dt\",i._goodDelta/u,(function(e){return l[e]/p-1}));i.status(t,w+2*(h+b),_,b,x,c.length,v.toFixed(2)+\" ut\",1-v/i._goodFps,(function(e){return c[e]/v-1}));i.status(t,w+3*(h+b),_,b,x,a.length,d.toFixed(2)+\" rt\",1-d/i._goodFps,(function(e){return a[e]/d-1}));i.status(t,w+4*(h+b),_,b,x,s.length,m.toFixed(2)+\" x\",m*m*m,(function(e){return(s[e]/r[e]/m||0)-1}))};\n/**\n         * Renders a label, indicator and a chart.\n         * @private\n         * @method status\n         * @param {RenderingContext} context\n         * @param {number} x\n         * @param {number} y\n         * @param {number} width\n         * @param {number} height\n         * @param {number} count\n         * @param {string} label\n         * @param {string} indicator\n         * @param {function} plotY\n         */i.status=function(e,t,n,i,r,a,s,l,c){e.strokeStyle=\"#888\";e.fillStyle=\"#444\";e.lineWidth=1;e.fillRect(t,n+7,i,1);e.beginPath();e.moveTo(t,n+7-r*o.clamp(.4*c(0),-2,2));for(var u=0;u<i;u+=1)e.lineTo(t+u,n+7-(u<a?r*o.clamp(.4*c(u),-2,2):0));e.stroke();e.fillStyle=\"hsl(\"+o.clamp(25+95*l,0,120)+\",100%,60%)\";e.fillRect(t,n-7,4,4);e.font=\"12px Arial\";e.textBaseline=\"middle\";e.textAlign=\"right\";e.fillStyle=\"#eee\";e.fillText(s,t+i,n-5)};\n/**\n         * Description\n         * @private\n         * @method constraints\n         * @param {constraint[]} constraints\n         * @param {RenderingContext} context\n         */i.constraints=function(e,t){var n=t;for(var i=0;i<e.length;i++){var r=e[i];if(r.render.visible&&r.pointA&&r.pointB){var a,s,c=r.bodyA,u=r.bodyB;a=c?l.add(c.position,r.pointA):r.pointA;if(\"pin\"===r.render.type){n.beginPath();n.arc(a.x,a.y,3,0,2*Math.PI);n.closePath()}else{s=u?l.add(u.position,r.pointB):r.pointB;n.beginPath();n.moveTo(a.x,a.y);if(\"spring\"===r.render.type){var f,d=l.sub(s,a),p=l.perp(l.normalise(d)),v=Math.ceil(o.clamp(r.length/5,12,20));for(var y=1;y<v;y+=1){f=y%2===0?1:-1;n.lineTo(a.x+d.x*(y/v)+p.x*f*4,a.y+d.y*(y/v)+p.y*f*4)}}n.lineTo(s.x,s.y)}if(r.render.lineWidth){n.lineWidth=r.render.lineWidth;n.strokeStyle=r.render.strokeStyle;n.stroke()}if(r.render.anchors){n.fillStyle=r.render.strokeStyle;n.beginPath();n.arc(a.x,a.y,3,0,2*Math.PI);n.arc(s.x,s.y,3,0,2*Math.PI);n.closePath();n.fill()}}}};\n/**\n         * Description\n         * @private\n         * @method bodies\n         * @param {render} render\n         * @param {body[]} bodies\n         * @param {RenderingContext} context\n         */i.bodies=function(e,t,n){var i,o,r,a,s=n,l=(e.engine,e.options),c=l.showInternalEdges||!l.wireframes;for(r=0;r<t.length;r++){i=t[r];if(i.render.visible)for(a=i.parts.length>1?1:0;a<i.parts.length;a++){o=i.parts[a];if(o.render.visible){l.showSleeping&&i.isSleeping?s.globalAlpha=.5*o.render.opacity:1!==o.render.opacity&&(s.globalAlpha=o.render.opacity);if(o.render.sprite&&o.render.sprite.texture&&!l.wireframes){var u=o.render.sprite,f=_getTexture(e,u.texture);s.translate(o.position.x,o.position.y);s.rotate(o.angle);s.drawImage(f,f.width*-u.xOffset*u.xScale,f.height*-u.yOffset*u.yScale,f.width*u.xScale,f.height*u.yScale);s.rotate(-o.angle);s.translate(-o.position.x,-o.position.y)}else{if(o.circleRadius){s.beginPath();s.arc(o.position.x,o.position.y,o.circleRadius,0,2*Math.PI)}else{s.beginPath();s.moveTo(o.vertices[0].x,o.vertices[0].y);for(var d=1;d<o.vertices.length;d++){!o.vertices[d-1].isInternal||c?s.lineTo(o.vertices[d].x,o.vertices[d].y):s.moveTo(o.vertices[d].x,o.vertices[d].y);o.vertices[d].isInternal&&!c&&s.moveTo(o.vertices[(d+1)%o.vertices.length].x,o.vertices[(d+1)%o.vertices.length].y)}s.lineTo(o.vertices[0].x,o.vertices[0].y);s.closePath()}if(l.wireframes){s.lineWidth=1;s.strokeStyle=\"#bbb\";s.stroke()}else{s.fillStyle=o.render.fillStyle;if(o.render.lineWidth){s.lineWidth=o.render.lineWidth;s.strokeStyle=o.render.strokeStyle;s.stroke()}s.fill()}}s.globalAlpha=1}}}};\n/**\n         * Optimised method for drawing body wireframes in one pass\n         * @private\n         * @method bodyWireframes\n         * @param {render} render\n         * @param {body[]} bodies\n         * @param {RenderingContext} context\n         */i.bodyWireframes=function(e,t,n){var i,o,r,a,s,l=n,c=e.options.showInternalEdges;l.beginPath();for(r=0;r<t.length;r++){i=t[r];if(i.render.visible)for(s=i.parts.length>1?1:0;s<i.parts.length;s++){o=i.parts[s];l.moveTo(o.vertices[0].x,o.vertices[0].y);for(a=1;a<o.vertices.length;a++){!o.vertices[a-1].isInternal||c?l.lineTo(o.vertices[a].x,o.vertices[a].y):l.moveTo(o.vertices[a].x,o.vertices[a].y);o.vertices[a].isInternal&&!c&&l.moveTo(o.vertices[(a+1)%o.vertices.length].x,o.vertices[(a+1)%o.vertices.length].y)}l.lineTo(o.vertices[0].x,o.vertices[0].y)}}l.lineWidth=1;l.strokeStyle=\"#bbb\";l.stroke()};\n/**\n         * Optimised method for drawing body convex hull wireframes in one pass\n         * @private\n         * @method bodyConvexHulls\n         * @param {render} render\n         * @param {body[]} bodies\n         * @param {RenderingContext} context\n         */i.bodyConvexHulls=function(e,t,n){var i,o,r,a=n;a.beginPath();for(o=0;o<t.length;o++){i=t[o];if(i.render.visible&&1!==i.parts.length){a.moveTo(i.vertices[0].x,i.vertices[0].y);for(r=1;r<i.vertices.length;r++)a.lineTo(i.vertices[r].x,i.vertices[r].y);a.lineTo(i.vertices[0].x,i.vertices[0].y)}}a.lineWidth=1;a.strokeStyle=\"rgba(255,255,255,0.2)\";a.stroke()};\n/**\n         * Renders body vertex numbers.\n         * @private\n         * @method vertexNumbers\n         * @param {render} render\n         * @param {body[]} bodies\n         * @param {RenderingContext} context\n         */i.vertexNumbers=function(e,t,n){var i,o,r,a=n;for(i=0;i<t.length;i++){var s=t[i].parts;for(r=s.length>1?1:0;r<s.length;r++){var l=s[r];for(o=0;o<l.vertices.length;o++){a.fillStyle=\"rgba(255,255,255,0.2)\";a.fillText(i+\"_\"+o,l.position.x+.8*(l.vertices[o].x-l.position.x),l.position.y+.8*(l.vertices[o].y-l.position.y))}}}};\n/**\n         * Renders mouse position.\n         * @private\n         * @method mousePosition\n         * @param {render} render\n         * @param {mouse} mouse\n         * @param {RenderingContext} context\n         */i.mousePosition=function(e,t,n){var i=n;i.fillStyle=\"rgba(255,255,255,0.8)\";i.fillText(t.position.x+\"  \"+t.position.y,t.position.x+5,t.position.y-5)};\n/**\n         * Draws body bounds\n         * @private\n         * @method bodyBounds\n         * @param {render} render\n         * @param {body[]} bodies\n         * @param {RenderingContext} context\n         */i.bodyBounds=function(e,t,n){var i=n,o=(e.engine,e.options);i.beginPath();for(var r=0;r<t.length;r++){var a=t[r];if(a.render.visible){var s=t[r].parts;for(var l=s.length>1?1:0;l<s.length;l++){var c=s[l];i.rect(c.bounds.min.x,c.bounds.min.y,c.bounds.max.x-c.bounds.min.x,c.bounds.max.y-c.bounds.min.y)}}}o.wireframes?i.strokeStyle=\"rgba(255,255,255,0.08)\":i.strokeStyle=\"rgba(0,0,0,0.1)\";i.lineWidth=1;i.stroke()};\n/**\n         * Draws body angle indicators and axes\n         * @private\n         * @method bodyAxes\n         * @param {render} render\n         * @param {body[]} bodies\n         * @param {RenderingContext} context\n         */i.bodyAxes=function(e,t,n){var i,o,r,a,s=n,l=(e.engine,e.options);s.beginPath();for(o=0;o<t.length;o++){var c=t[o],u=c.parts;if(c.render.visible)if(l.showAxes)for(r=u.length>1?1:0;r<u.length;r++){i=u[r];for(a=0;a<i.axes.length;a++){var f=i.axes[a];s.moveTo(i.position.x,i.position.y);s.lineTo(i.position.x+20*f.x,i.position.y+20*f.y)}}else for(r=u.length>1?1:0;r<u.length;r++){i=u[r];for(a=0;a<i.axes.length;a++){s.moveTo(i.position.x,i.position.y);s.lineTo((i.vertices[0].x+i.vertices[i.vertices.length-1].x)/2,(i.vertices[0].y+i.vertices[i.vertices.length-1].y)/2)}}}if(l.wireframes){s.strokeStyle=\"indianred\";s.lineWidth=1}else{s.strokeStyle=\"rgba(255, 255, 255, 0.4)\";s.globalCompositeOperation=\"overlay\";s.lineWidth=2}s.stroke();s.globalCompositeOperation=\"source-over\"};\n/**\n         * Draws body positions\n         * @private\n         * @method bodyPositions\n         * @param {render} render\n         * @param {body[]} bodies\n         * @param {RenderingContext} context\n         */i.bodyPositions=function(e,t,n){var i,o,r,a,s=n,l=(e.engine,e.options);s.beginPath();for(r=0;r<t.length;r++){i=t[r];if(i.render.visible)for(a=0;a<i.parts.length;a++){o=i.parts[a];s.arc(o.position.x,o.position.y,3,0,2*Math.PI,false);s.closePath()}}l.wireframes?s.fillStyle=\"indianred\":s.fillStyle=\"rgba(0,0,0,0.5)\";s.fill();s.beginPath();for(r=0;r<t.length;r++){i=t[r];if(i.render.visible){s.arc(i.positionPrev.x,i.positionPrev.y,2,0,2*Math.PI,false);s.closePath()}}s.fillStyle=\"rgba(255,165,0,0.8)\";s.fill()};\n/**\n         * Draws body velocity\n         * @private\n         * @method bodyVelocity\n         * @param {render} render\n         * @param {body[]} bodies\n         * @param {RenderingContext} context\n         */i.bodyVelocity=function(e,t,n){var i=n;i.beginPath();for(var o=0;o<t.length;o++){var r=t[o];if(r.render.visible){i.moveTo(r.position.x,r.position.y);i.lineTo(r.position.x+2*(r.position.x-r.positionPrev.x),r.position.y+2*(r.position.y-r.positionPrev.y))}}i.lineWidth=3;i.strokeStyle=\"cornflowerblue\";i.stroke()};\n/**\n         * Draws body ids\n         * @private\n         * @method bodyIds\n         * @param {render} render\n         * @param {body[]} bodies\n         * @param {RenderingContext} context\n         */i.bodyIds=function(e,t,n){var i,o,r=n;for(i=0;i<t.length;i++)if(t[i].render.visible){var a=t[i].parts;for(o=a.length>1?1:0;o<a.length;o++){var s=a[o];r.font=\"12px Arial\";r.fillStyle=\"rgba(255,255,255,0.5)\";r.fillText(s.id,s.position.x+10,s.position.y-10)}}};\n/**\n         * Description\n         * @private\n         * @method collisions\n         * @param {render} render\n         * @param {pair[]} pairs\n         * @param {RenderingContext} context\n         */i.collisions=function(e,t,n){var i,o,r,a,s=n,l=e.options;s.beginPath();for(r=0;r<t.length;r++){i=t[r];if(i.isActive){o=i.collision;for(a=0;a<i.activeContacts.length;a++){var c=i.activeContacts[a],u=c.vertex;s.rect(u.x-1.5,u.y-1.5,3.5,3.5)}}}l.wireframes?s.fillStyle=\"rgba(255,255,255,0.7)\":s.fillStyle=\"orange\";s.fill();s.beginPath();for(r=0;r<t.length;r++){i=t[r];if(i.isActive){o=i.collision;if(i.activeContacts.length>0){var f=i.activeContacts[0].vertex.x,d=i.activeContacts[0].vertex.y;if(2===i.activeContacts.length){f=(i.activeContacts[0].vertex.x+i.activeContacts[1].vertex.x)/2;d=(i.activeContacts[0].vertex.y+i.activeContacts[1].vertex.y)/2}o.bodyB===o.supports[0].body||true===o.bodyA.isStatic?s.moveTo(f-8*o.normal.x,d-8*o.normal.y):s.moveTo(f+8*o.normal.x,d+8*o.normal.y);s.lineTo(f,d)}}}l.wireframes?s.strokeStyle=\"rgba(255,165,0,0.7)\":s.strokeStyle=\"orange\";s.lineWidth=1;s.stroke()};\n/**\n         * Description\n         * @private\n         * @method separations\n         * @param {render} render\n         * @param {pair[]} pairs\n         * @param {RenderingContext} context\n         */i.separations=function(e,t,n){var i,o,r,a,s,l=n,c=e.options;l.beginPath();for(s=0;s<t.length;s++){i=t[s];if(i.isActive){o=i.collision;r=o.bodyA;a=o.bodyB;var u=1;a.isStatic||r.isStatic||(u=.5);a.isStatic&&(u=0);l.moveTo(a.position.x,a.position.y);l.lineTo(a.position.x-o.penetration.x*u,a.position.y-o.penetration.y*u);u=1;a.isStatic||r.isStatic||(u=.5);r.isStatic&&(u=0);l.moveTo(r.position.x,r.position.y);l.lineTo(r.position.x+o.penetration.x*u,r.position.y+o.penetration.y*u)}}c.wireframes?l.strokeStyle=\"rgba(255,165,0,0.5)\":l.strokeStyle=\"orange\";l.stroke()};\n/**\n         * Description\n         * @private\n         * @method inspector\n         * @param {inspector} inspector\n         * @param {RenderingContext} context\n         */i.inspector=function(e,t){e.engine;var n,i=e.selected,o=e.render,r=o.options;if(r.hasBounds){var a=o.bounds.max.x-o.bounds.min.x,s=o.bounds.max.y-o.bounds.min.y,l=a/o.options.width,c=s/o.options.height;t.scale(1/l,1/c);t.translate(-o.bounds.min.x,-o.bounds.min.y)}for(var u=0;u<i.length;u++){var f=i[u].data;t.translate(.5,.5);t.lineWidth=1;t.strokeStyle=\"rgba(255,165,0,0.9)\";t.setLineDash([1,2]);switch(f.type){case\"body\":n=f.bounds;t.beginPath();t.rect(Math.floor(n.min.x-3),Math.floor(n.min.y-3),Math.floor(n.max.x-n.min.x+6),Math.floor(n.max.y-n.min.y+6));t.closePath();t.stroke();break;case\"constraint\":var d=f.pointA;f.bodyA&&(d=f.pointB);t.beginPath();t.arc(d.x,d.y,10,0,2*Math.PI);t.closePath();t.stroke();break}t.setLineDash([]);t.translate(-.5,-.5)}if(null!==e.selectStart){t.translate(.5,.5);t.lineWidth=1;t.strokeStyle=\"rgba(255,165,0,0.6)\";t.fillStyle=\"rgba(255,165,0,0.1)\";n=e.selectBounds;t.beginPath();t.rect(Math.floor(n.min.x),Math.floor(n.min.y),Math.floor(n.max.x-n.min.x),Math.floor(n.max.y-n.min.y));t.closePath();t.stroke();t.fill();t.translate(-.5,-.5)}r.hasBounds&&t.setTransform(1,0,0,1,0,0)};\n/**\n         * Updates render timing.\n         * @method _updateTiming\n         * @private\n         * @param {render} render\n         * @param {number} time\n         */var _updateTiming=function(e,t){var n=e.engine,o=e.timing,r=o.historySize,a=n.timing.timestamp;o.delta=t-o.lastTime||i._goodDelta;o.lastTime=t;o.timestampElapsed=a-o.lastTimestamp||0;o.lastTimestamp=a;o.deltaHistory.unshift(o.delta);o.deltaHistory.length=Math.min(o.deltaHistory.length,r);o.engineDeltaHistory.unshift(n.timing.lastDelta);o.engineDeltaHistory.length=Math.min(o.engineDeltaHistory.length,r);o.timestampElapsedHistory.unshift(o.timestampElapsed);o.timestampElapsedHistory.length=Math.min(o.timestampElapsedHistory.length,r);o.engineElapsedHistory.unshift(n.timing.lastElapsed);o.engineElapsedHistory.length=Math.min(o.engineElapsedHistory.length,r);o.elapsedHistory.unshift(o.lastElapsed);o.elapsedHistory.length=Math.min(o.elapsedHistory.length,r)};\n/**\n         * Returns the mean value of the given numbers.\n         * @method _mean\n         * @private\n         * @param {Number[]} values\n         * @return {Number} the mean of given values\n         */var _mean=function(e){var t=0;for(var n=0;n<e.length;n+=1)t+=e[n];return t/e.length||0};\n/**\n         * @method _createCanvas\n         * @private\n         * @param {} width\n         * @param {} height\n         * @return canvas\n         */var _createCanvas=function(e,t){var n=document.createElement(\"canvas\");n.width=e;n.height=t;n.oncontextmenu=function(){return false};n.onselectstart=function(){return false};return n};\n/**\n         * Gets the pixel ratio of the canvas.\n         * @method _getPixelRatio\n         * @private\n         * @param {HTMLElement} canvas\n         * @return {Number} pixel ratio\n         */var _getPixelRatio=function(e){var t=e.getContext(\"2d\"),n=window.devicePixelRatio||1,i=t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1;return n/i};\n/**\n         * Gets the requested texture (an Image) via its path\n         * @method _getTexture\n         * @private\n         * @param {render} render\n         * @param {string} imagePath\n         * @return {Image} texture\n         */var _getTexture=function(e,t){var n=e.textures[t];if(n)return n;n=e.textures[t]=new Image;n.src=t;return n};\n/**\n         * Applies the background to the canvas using CSS.\n         * @method applyBackground\n         * @private\n         * @param {render} render\n         * @param {string} background\n         */var _applyBackground=function(e,t){var n=t;/(jpg|gif|png)$/.test(t)&&(n=\"url(\"+t+\")\");e.canvas.style.background=n;e.canvas.style.backgroundSize=\"contain\";e.currentBackground=t};\n/**\n        * Fired before rendering\n        *\n        * @event beforeRender\n        * @param {} event An event object\n        * @param {number} event.timestamp The engine.timing.timestamp of the event\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n        * Fired after rendering\n        *\n        * @event afterRender\n        * @param {} event An event object\n        * @param {number} event.timestamp The engine.timing.timestamp of the event\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n         * A back-reference to the `Matter.Render` module.\n         *\n         * @property controller\n         * @type render\n         */\n/**\n         * A reference to the `Matter.Engine` instance to be used.\n         *\n         * @property engine\n         * @type engine\n         */\n/**\n         * A reference to the element where the canvas is to be inserted (if `render.canvas` has not been specified)\n         *\n         * @property element\n         * @type HTMLElement\n         * @default null\n         */\n/**\n         * The canvas element to render to. If not specified, one will be created if `render.element` has been specified.\n         *\n         * @property canvas\n         * @type HTMLCanvasElement\n         * @default null\n         */\n/**\n         * A `Bounds` object that specifies the drawing view region.\n         * Rendering will be automatically transformed and scaled to fit within the canvas size (`render.options.width` and `render.options.height`).\n         * This allows for creating views that can pan or zoom around the scene.\n         * You must also set `render.options.hasBounds` to `true` to enable bounded rendering.\n         *\n         * @property bounds\n         * @type bounds\n         */\n/**\n         * The 2d rendering context from the `render.canvas` element.\n         *\n         * @property context\n         * @type CanvasRenderingContext2D\n         */\n/**\n         * The sprite texture cache.\n         *\n         * @property textures\n         * @type {}\n         */\n/**\n         * The mouse to render if `render.options.showMousePosition` is enabled.\n         *\n         * @property mouse\n         * @type mouse\n         * @default null\n         */\n/**\n         * The configuration options of the renderer.\n         *\n         * @property options\n         * @type {}\n         */\n/**\n         * The target width in pixels of the `render.canvas` to be created.\n         * See also the `options.pixelRatio` property to change render quality.\n         *\n         * @property options.width\n         * @type number\n         * @default 800\n         */\n/**\n         * The target height in pixels of the `render.canvas` to be created.\n         * See also the `options.pixelRatio` property to change render quality.\n         *\n         * @property options.height\n         * @type number\n         * @default 600\n         */\n/**\n         * The [pixel ratio](https://developer.mozilla.org/en-US/docs/Web/API/Window/devicePixelRatio) to use when rendering.\n         *\n         * @property options.pixelRatio\n         * @type number\n         * @default 1\n         */\n/**\n         * A CSS background color string to use when `render.options.wireframes` is disabled.\n         * This may be also set to `'transparent'` or equivalent.\n         *\n         * @property options.background\n         * @type string\n         * @default '#14151f'\n         */\n/**\n         * A CSS background color string to use when `render.options.wireframes` is enabled.\n         * This may be also set to `'transparent'` or equivalent.\n         *\n         * @property options.wireframeBackground\n         * @type string\n         * @default '#14151f'\n         */\n/**\n         * A flag that specifies if `render.bounds` should be used when rendering.\n         *\n         * @property options.hasBounds\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable all debug information overlays together.  \n         * This includes and has priority over the values of:\n         *\n         * - `render.options.showStats`\n         * - `render.options.showPerformance`\n         *\n         * @property options.showDebug\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable the engine stats info overlay.  \n         * From left to right, the values shown are:\n         *\n         * - body parts total\n         * - body total\n         * - constraints total\n         * - composites total\n         * - collision pairs total\n         *\n         * @property options.showStats\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable performance charts.  \n         * From left to right, the values shown are:\n         *\n         * - average render frequency (e.g. 60 fps)\n         * - exact engine delta time used for last update (e.g. 16.66ms)\n         * - average engine execution duration (e.g. 5.00ms)\n         * - average render execution duration (e.g. 0.40ms)\n         * - average effective play speed (e.g. '1.00x' is 'real-time')\n         *\n         * Each value is recorded over a fixed sample of past frames (60 frames).\n         *\n         * A chart shown below each value indicates the variance from the average over the sample.\n         * The more stable or fixed the value is the flatter the chart will appear.\n         *\n         * @property options.showPerformance\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable rendering entirely.\n         *\n         * @property options.enabled\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to toggle wireframe rendering otherwise solid fill rendering is used.\n         *\n         * @property options.wireframes\n         * @type boolean\n         * @default true\n         */\n/**\n         * A flag to enable or disable sleeping bodies indicators.\n         *\n         * @property options.showSleeping\n         * @type boolean\n         * @default true\n         */\n/**\n         * A flag to enable or disable the debug information overlay.\n         *\n         * @property options.showDebug\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable the collision broadphase debug overlay.\n         *\n         * @deprecated no longer implemented\n         * @property options.showBroadphase\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable the body bounds debug overlay.\n         *\n         * @property options.showBounds\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable the body velocity debug overlay.\n         *\n         * @property options.showVelocity\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable the body collisions debug overlay.\n         *\n         * @property options.showCollisions\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable the collision resolver separations debug overlay.\n         *\n         * @property options.showSeparations\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable the body axes debug overlay.\n         *\n         * @property options.showAxes\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable the body positions debug overlay.\n         *\n         * @property options.showPositions\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable the body angle debug overlay.\n         *\n         * @property options.showAngleIndicator\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable the body and part ids debug overlay.\n         *\n         * @property options.showIds\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable the body vertex numbers debug overlay.\n         *\n         * @property options.showVertexNumbers\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable the body convex hulls debug overlay.\n         *\n         * @property options.showConvexHulls\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable the body internal edges debug overlay.\n         *\n         * @property options.showInternalEdges\n         * @type boolean\n         * @default false\n         */\n/**\n         * A flag to enable or disable the mouse position debug overlay.\n         *\n         * @property options.showMousePosition\n         * @type boolean\n         * @default false\n         */})()},function(e,t){var n={};e.exports=n;(function(){\n/**\n         * Creates a new contact.\n         * @method create\n         * @param {vertex} vertex\n         * @return {contact} A new contact\n         */\nn.create=function(e){return{vertex:e,normalImpulse:0,tangentImpulse:0}}})()},function(e,t,n){var i={};e.exports=i;var o=n(7);var r=n(19);var a=n(14);var s=n(20);var l=n(4);var c=n(5);var u=n(10);var f=n(0);var d=n(6);(function(){\n/**\n         * Creates a new engine. The options parameter is an object that specifies any properties you wish to override the defaults.\n         * All properties have default values, and many are pre-calculated automatically based on other properties.\n         * See the properties section below for detailed information on what you can pass via the `options` object.\n         * @method create\n         * @param {object} [options]\n         * @return {engine} engine\n         */\ni.create=function(e){e=e||{};var t={positionIterations:6,velocityIterations:4,constraintIterations:2,enableSleeping:false,events:[],plugin:{},gravity:{x:0,y:1,scale:.001},timing:{timestamp:0,timeScale:1,lastDelta:0,lastElapsed:0}};var n=f.extend(t,e);n.world=e.world||c.create({label:\"World\"});n.pairs=e.pairs||s.create();n.detector=e.detector||a.create();n.grid={buckets:[]};n.world.gravity=n.gravity;n.broadphase=n.grid;n.metrics={};return n};\n/**\n         * Moves the simulation forward in time by `delta` ms.\n         * The `correction` argument is an optional `Number` that specifies the time correction factor to apply to the update.\n         * This can help improve the accuracy of the simulation in cases where `delta` is changing between updates.\n         * The value of `correction` is defined as `delta / lastDelta`, i.e. the percentage change of `delta` over the last step.\n         * Therefore the value is always `1` (no correction) when `delta` constant (or when no correction is desired, which is the default).\n         * See the paper on <a href=\"http://lonesock.net/article/verlet.html\">Time Corrected Verlet</a> for more information.\n         *\n         * Triggers `beforeUpdate` and `afterUpdate` events.\n         * Triggers `collisionStart`, `collisionActive` and `collisionEnd` events.\n         * @method update\n         * @param {engine} engine\n         * @param {number} [delta=16.666]\n         * @param {number} [correction=1]\n         */i.update=function(e,t,n){var d=f.now();t=t||1e3/60;n=n||1;var p,v=e.world,y=e.detector,m=e.pairs,g=e.timing,x=g.timestamp;g.timestamp+=t*g.timeScale;g.lastDelta=t*g.timeScale;var h={timestamp:g.timestamp};l.trigger(e,\"beforeUpdate\",h);var b=c.allBodies(v),S=c.allConstraints(v);v.isModified&&a.setBodies(y,b);v.isModified&&c.setModified(v,false,false,true);e.enableSleeping&&o.update(b,g.timeScale);i._bodiesApplyGravity(b,e.gravity);i._bodiesUpdate(b,t,g.timeScale,n,v.bounds);u.preSolveAll(b);for(p=0;p<e.constraintIterations;p++)u.solveAll(S,g.timeScale);u.postSolveAll(b);y.pairs=e.pairs;var w=a.collisions(y);s.update(m,w,x);e.enableSleeping&&o.afterCollisions(m.list,g.timeScale);m.collisionStart.length>0&&l.trigger(e,\"collisionStart\",{pairs:m.collisionStart});r.preSolvePosition(m.list);for(p=0;p<e.positionIterations;p++)r.solvePosition(m.list,g.timeScale);r.postSolvePosition(b);u.preSolveAll(b);for(p=0;p<e.constraintIterations;p++)u.solveAll(S,g.timeScale);u.postSolveAll(b);r.preSolveVelocity(m.list);for(p=0;p<e.velocityIterations;p++)r.solveVelocity(m.list,g.timeScale);m.collisionActive.length>0&&l.trigger(e,\"collisionActive\",{pairs:m.collisionActive});m.collisionEnd.length>0&&l.trigger(e,\"collisionEnd\",{pairs:m.collisionEnd});i._bodiesClearForces(b);l.trigger(e,\"afterUpdate\",h);e.timing.lastElapsed=f.now()-d;return e};\n/**\n         * Merges two engines by keeping the configuration of `engineA` but replacing the world with the one from `engineB`.\n         * @method merge\n         * @param {engine} engineA\n         * @param {engine} engineB\n         */i.merge=function(e,t){f.extend(e,t);if(t.world){e.world=t.world;i.clear(e);var n=c.allBodies(e.world);for(var r=0;r<n.length;r++){var a=n[r];o.set(a,false);a.id=f.nextId()}}};\n/**\n         * Clears the engine pairs and detector.\n         * @method clear\n         * @param {engine} engine\n         */i.clear=function(e){s.clear(e.pairs);a.clear(e.detector)};\n/**\n         * Zeroes the `body.force` and `body.torque` force buffers.\n         * @method _bodiesClearForces\n         * @private\n         * @param {body[]} bodies\n         */i._bodiesClearForces=function(e){for(var t=0;t<e.length;t++){var n=e[t];n.force.x=0;n.force.y=0;n.torque=0}};\n/**\n         * Applys a mass dependant force to all given bodies.\n         * @method _bodiesApplyGravity\n         * @private\n         * @param {body[]} bodies\n         * @param {vector} gravity\n         */i._bodiesApplyGravity=function(e,t){var n=\"undefined\"!==typeof t.scale?t.scale:.001;if((0!==t.x||0!==t.y)&&0!==n)for(var i=0;i<e.length;i++){var o=e[i];if(!o.isStatic&&!o.isSleeping){o.force.y+=o.mass*t.y*n;o.force.x+=o.mass*t.x*n}}};\n/**\n         * Applys `Body.update` to all given `bodies`.\n         * @method _bodiesUpdate\n         * @private\n         * @param {body[]} bodies\n         * @param {number} deltaTime \n         * The amount of time elapsed between updates\n         * @param {number} timeScale\n         * @param {number} correction \n         * The Verlet correction factor (deltaTime / lastDeltaTime)\n         * @param {bounds} worldBounds\n         */i._bodiesUpdate=function(e,t,n,i,o){for(var r=0;r<e.length;r++){var a=e[r];a.isStatic||a.isSleeping||d.update(a,t,n,i)}};\n/**\n         * A deprecated alias for `Runner.run`, use `Matter.Runner.run(engine)` instead and see `Matter.Runner` for more information.\n         * @deprecated use Matter.Runner.run(engine) instead\n         * @method run\n         * @param {engine} engine\n         */\n/**\n        * Fired just before an update\n        *\n        * @event beforeUpdate\n        * @param {object} event An event object\n        * @param {number} event.timestamp The engine.timing.timestamp of the event\n        * @param {engine} event.source The source object of the event\n        * @param {string} event.name The name of the event\n        */\n/**\n        * Fired after engine update and all collision events\n        *\n        * @event afterUpdate\n        * @param {object} event An event object\n        * @param {number} event.timestamp The engine.timing.timestamp of the event\n        * @param {engine} event.source The source object of the event\n        * @param {string} event.name The name of the event\n        */\n/**\n        * Fired after engine update, provides a list of all pairs that have started to collide in the current tick (if any)\n        *\n        * @event collisionStart\n        * @param {object} event An event object\n        * @param {pair[]} event.pairs List of affected pairs\n        * @param {number} event.timestamp The engine.timing.timestamp of the event\n        * @param {engine} event.source The source object of the event\n        * @param {string} event.name The name of the event\n        */\n/**\n        * Fired after engine update, provides a list of all pairs that are colliding in the current tick (if any)\n        *\n        * @event collisionActive\n        * @param {object} event An event object\n        * @param {pair[]} event.pairs List of affected pairs\n        * @param {number} event.timestamp The engine.timing.timestamp of the event\n        * @param {engine} event.source The source object of the event\n        * @param {string} event.name The name of the event\n        */\n/**\n        * Fired after engine update, provides a list of all pairs that have ended collision in the current tick (if any)\n        *\n        * @event collisionEnd\n        * @param {object} event An event object\n        * @param {pair[]} event.pairs List of affected pairs\n        * @param {number} event.timestamp The engine.timing.timestamp of the event\n        * @param {engine} event.source The source object of the event\n        * @param {string} event.name The name of the event\n        */\n/**\n         * An integer `Number` that specifies the number of position iterations to perform each update.\n         * The higher the value, the higher quality the simulation will be at the expense of performance.\n         *\n         * @property positionIterations\n         * @type number\n         * @default 6\n         */\n/**\n         * An integer `Number` that specifies the number of velocity iterations to perform each update.\n         * The higher the value, the higher quality the simulation will be at the expense of performance.\n         *\n         * @property velocityIterations\n         * @type number\n         * @default 4\n         */\n/**\n         * An integer `Number` that specifies the number of constraint iterations to perform each update.\n         * The higher the value, the higher quality the simulation will be at the expense of performance.\n         * The default value of `2` is usually very adequate.\n         *\n         * @property constraintIterations\n         * @type number\n         * @default 2\n         */\n/**\n         * A flag that specifies whether the engine should allow sleeping via the `Matter.Sleeping` module.\n         * Sleeping can improve stability and performance, but often at the expense of accuracy.\n         *\n         * @property enableSleeping\n         * @type boolean\n         * @default false\n         */\n/**\n         * An `Object` containing properties regarding the timing systems of the engine. \n         *\n         * @property timing\n         * @type object\n         */\n/**\n         * A `Number` that specifies the global scaling factor of time for all bodies.\n         * A value of `0` freezes the simulation.\n         * A value of `0.1` gives a slow-motion effect.\n         * A value of `1.2` gives a speed-up effect.\n         *\n         * @property timing.timeScale\n         * @type number\n         * @default 1\n         */\n/**\n         * A `Number` that specifies the current simulation-time in milliseconds starting from `0`. \n         * It is incremented on every `Engine.update` by the given `delta` argument. \n         *\n         * @property timing.timestamp\n         * @type number\n         * @default 0\n         */\n/**\n         * A `Number` that represents the total execution time elapsed during the last `Engine.update` in milliseconds.\n         * It is updated by timing from the start of the last `Engine.update` call until it ends.\n         *\n         * This value will also include the total execution time of all event handlers directly or indirectly triggered by the engine update.\n         *\n         * @property timing.lastElapsed\n         * @type number\n         * @default 0\n         */\n/**\n         * A `Number` that represents the `delta` value used in the last engine update.\n         *\n         * @property timing.lastDelta\n         * @type number\n         * @default 0\n         */\n/**\n         * A `Matter.Detector` instance.\n         *\n         * @property detector\n         * @type detector\n         * @default a Matter.Detector instance\n         */\n/**\n         * A `Matter.Grid` instance.\n         *\n         * @deprecated replaced by `engine.detector`\n         * @property grid\n         * @type grid\n         * @default a Matter.Grid instance\n         */\n/**\n         * Replaced by and now alias for `engine.grid`.\n         *\n         * @deprecated replaced by `engine.detector`\n         * @property broadphase\n         * @type grid\n         * @default a Matter.Grid instance\n         */\n/**\n         * The root `Matter.Composite` instance that will contain all bodies, constraints and other composites to be simulated by this engine.\n         *\n         * @property world\n         * @type composite\n         * @default a Matter.Composite instance\n         */\n/**\n         * An object reserved for storing plugin-specific properties.\n         *\n         * @property plugin\n         * @type {}\n         */\n/**\n         * The gravity to apply on all bodies in `engine.world`.\n         *\n         * @property gravity\n         * @type object\n         */\n/**\n         * The gravity x component.\n         *\n         * @property gravity.x\n         * @type object\n         * @default 0\n         */\n/**\n         * The gravity y component.\n         *\n         * @property gravity.y\n         * @type object\n         * @default 1\n         */\n/**\n         * The gravity scale factor.\n         *\n         * @property gravity.scale\n         * @type object\n         * @default 0.001\n         */})()},function(e,t,n){var i={};e.exports=i;var o=n(3);var r=n(1);(function(){i._restingThresh=4;i._restingThreshTangent=6;i._positionDampen=.9;i._positionWarming=.8;i._frictionNormalMultiplier=5;\n/**\n         * Prepare pairs for position solving.\n         * @method preSolvePosition\n         * @param {pair[]} pairs\n         */i.preSolvePosition=function(e){var t,n,i,o=e.length;for(t=0;t<o;t++){n=e[t];if(n.isActive){i=n.activeContacts.length;n.collision.parentA.totalContacts+=i;n.collision.parentB.totalContacts+=i}}};\n/**\n         * Find a solution for pair positions.\n         * @method solvePosition\n         * @param {pair[]} pairs\n         * @param {number} timeScale\n         */i.solvePosition=function(e,t){var n,o,r,a,s,l,c,u,f=i._positionDampen,d=e.length;for(n=0;n<d;n++){o=e[n];if(o.isActive&&!o.isSensor){r=o.collision;a=r.parentA;s=r.parentB;l=r.normal;o.separation=l.x*(s.positionImpulse.x+r.penetration.x-a.positionImpulse.x)+l.y*(s.positionImpulse.y+r.penetration.y-a.positionImpulse.y)}}for(n=0;n<d;n++){o=e[n];if(o.isActive&&!o.isSensor){r=o.collision;a=r.parentA;s=r.parentB;l=r.normal;u=(o.separation-o.slop)*t;(a.isStatic||s.isStatic)&&(u*=2);if(!(a.isStatic||a.isSleeping)){c=f/a.totalContacts;a.positionImpulse.x+=l.x*u*c;a.positionImpulse.y+=l.y*u*c}if(!(s.isStatic||s.isSleeping)){c=f/s.totalContacts;s.positionImpulse.x-=l.x*u*c;s.positionImpulse.y-=l.y*u*c}}}};\n/**\n         * Apply position resolution.\n         * @method postSolvePosition\n         * @param {body[]} bodies\n         */i.postSolvePosition=function(e){var t=i._positionWarming,n=e.length,a=o.translate,s=r.update;for(var l=0;l<n;l++){var c=e[l],u=c.positionImpulse,f=u.x,d=u.y,p=c.velocity;c.totalContacts=0;if(0!==f||0!==d){for(var v=0;v<c.parts.length;v++){var y=c.parts[v];a(y.vertices,u);s(y.bounds,y.vertices,p);y.position.x+=f;y.position.y+=d}c.positionPrev.x+=f;c.positionPrev.y+=d;if(f*p.x+d*p.y<0){u.x=0;u.y=0}else{u.x*=t;u.y*=t}}}};\n/**\n         * Prepare pairs for velocity solving.\n         * @method preSolveVelocity\n         * @param {pair[]} pairs\n         */i.preSolveVelocity=function(e){var t,n,i=e.length;for(t=0;t<i;t++){var o=e[t];if(o.isActive&&!o.isSensor){var r=o.activeContacts,a=r.length,s=o.collision,l=s.parentA,c=s.parentB,u=s.normal,f=s.tangent;for(n=0;n<a;n++){var d=r[n],p=d.vertex,v=d.normalImpulse,y=d.tangentImpulse;if(0!==v||0!==y){var m=u.x*v+f.x*y,g=u.y*v+f.y*y;if(!(l.isStatic||l.isSleeping)){l.positionPrev.x+=m*l.inverseMass;l.positionPrev.y+=g*l.inverseMass;l.anglePrev+=l.inverseInertia*((p.x-l.position.x)*g-(p.y-l.position.y)*m)}if(!(c.isStatic||c.isSleeping)){c.positionPrev.x-=m*c.inverseMass;c.positionPrev.y-=g*c.inverseMass;c.anglePrev-=c.inverseInertia*((p.x-c.position.x)*g-(p.y-c.position.y)*m)}}}}}};\n/**\n         * Find a solution for pair velocities.\n         * @method solveVelocity\n         * @param {pair[]} pairs\n         * @param {number} timeScale\n         */i.solveVelocity=function(e,t){var n,o,r,a,s=t*t,l=i._restingThresh*s,c=i._frictionNormalMultiplier,u=i._restingThreshTangent*s,f=Number.MAX_VALUE,d=e.length;for(r=0;r<d;r++){var p=e[r];if(p.isActive&&!p.isSensor){var v=p.collision,y=v.parentA,m=v.parentB,g=y.velocity,x=m.velocity,h=v.normal.x,b=v.normal.y,S=v.tangent.x,w=v.tangent.y,_=p.activeContacts,A=_.length,P=1/A,C=y.inverseMass+m.inverseMass,k=p.friction*p.frictionStatic*c*s;g.x=y.position.x-y.positionPrev.x;g.y=y.position.y-y.positionPrev.y;x.x=m.position.x-m.positionPrev.x;x.y=m.position.y-m.positionPrev.y;y.angularVelocity=y.angle-y.anglePrev;m.angularVelocity=m.angle-m.anglePrev;for(a=0;a<A;a++){var M=_[a],B=M.vertex;var I=B.x-y.position.x,T=B.y-y.position.y,R=B.x-m.position.x,E=B.y-m.position.y;var V=g.x-T*y.angularVelocity,L=g.y+I*y.angularVelocity,q=x.x-E*m.angularVelocity,O=x.y+R*m.angularVelocity;var D=V-q,F=L-O;var H=h*D+b*F,j=S*D+w*F;var W=p.separation+H;var G=Math.min(W,1);G=W<0?0:G;var N=G*k;if(j>N||-j>N){o=j>0?j:-j;n=p.friction*(j>0?1:-1)*s;n<-o?n=-o:n>o&&(n=o)}else{n=j;o=f}var U=I*b-T*h,z=R*b-E*h,X=P/(C+y.inverseInertia*U*U+m.inverseInertia*z*z);var Q=(1+p.restitution)*H*X;n*=X;if(H*H>l&&H<0)M.normalImpulse=0;else{var Y=M.normalImpulse;M.normalImpulse+=Q;M.normalImpulse=Math.min(M.normalImpulse,0);Q=M.normalImpulse-Y}if(j*j>u)M.tangentImpulse=0;else{var Z=M.tangentImpulse;M.tangentImpulse+=n;M.tangentImpulse<-o&&(M.tangentImpulse=-o);M.tangentImpulse>o&&(M.tangentImpulse=o);n=M.tangentImpulse-Z}var $=h*Q+S*n,J=b*Q+w*n;if(!(y.isStatic||y.isSleeping)){y.positionPrev.x+=$*y.inverseMass;y.positionPrev.y+=J*y.inverseMass;y.anglePrev+=(I*J-T*$)*y.inverseInertia}if(!(m.isStatic||m.isSleeping)){m.positionPrev.x-=$*m.inverseMass;m.positionPrev.y-=J*m.inverseMass;m.anglePrev-=(R*J-E*$)*m.inverseInertia}}}}}})()},function(e,t,n){var i={};e.exports=i;var o=n(9);var r=n(0);(function(){\n/**\n         * Creates a new pairs structure.\n         * @method create\n         * @param {object} options\n         * @return {pairs} A new pairs structure\n         */\ni.create=function(e){return r.extend({table:{},list:[],collisionStart:[],collisionActive:[],collisionEnd:[]},e)};\n/**\n         * Updates pairs given a list of collisions.\n         * @method update\n         * @param {object} pairs\n         * @param {collision[]} collisions\n         * @param {number} timestamp\n         */i.update=function(e,t,n){var i,r,a,s,l=e.list,c=l.length,u=e.table,f=t.length,d=e.collisionStart,p=e.collisionEnd,v=e.collisionActive;d.length=0;p.length=0;v.length=0;for(s=0;s<c;s++)l[s].confirmedActive=false;for(s=0;s<f;s++){i=t[s];a=i.pair;if(a){a.isActive?v.push(a):d.push(a);o.update(a,i,n);a.confirmedActive=true}else{a=o.create(i,n);u[a.id]=a;d.push(a);l.push(a)}}var y=[];c=l.length;for(s=0;s<c;s++){a=l[s];if(!a.confirmedActive){o.setActive(a,false,n);p.push(a);a.collision.bodyA.isSleeping||a.collision.bodyB.isSleeping||y.push(s)}}for(s=0;s<y.length;s++){r=y[s]-s;a=l[r];l.splice(r,1);delete u[a.id]}};\n/**\n         * Clears the given pairs structure.\n         * @method clear\n         * @param {pairs} pairs\n         * @return {pairs} pairs\n         */i.clear=function(e){e.table={};e.list.length=0;e.collisionStart.length=0;e.collisionActive.length=0;e.collisionEnd.length=0;return e}})()},function(e,t,n){var i=e.exports=n(22);i.Axes=n(11);i.Bodies=n(12);i.Body=n(6);i.Bounds=n(1);i.Collision=n(8);i.Common=n(0);i.Composite=n(5);i.Composites=n(23);i.Constraint=n(10);i.Contact=n(17);i.Detector=n(14);i.Engine=n(18);i.Events=n(4);i.Grid=n(24);i.Mouse=n(13);i.MouseConstraint=n(25);i.Pair=n(9);i.Pairs=n(20);i.Plugin=n(15);i.Query=n(26);i.Render=n(16);i.Resolver=n(19);i.Runner=n(27);i.SAT=n(28);i.Sleeping=n(7);i.Svg=n(29);i.Vector=n(2);i.Vertices=n(3);i.World=n(30);i.Engine.run=i.Runner.run;i.Common.deprecated(i.Engine,\"run\",\"Engine.run \u27A4 use Matter.Runner.run(engine) instead\")},function(e,t,n){var i={};e.exports=i;var o=n(15);var r=n(0);(function(){\n/**\n         * The library name.\n         * @property name\n         * @readOnly\n         * @type {String}\n         */\ni.name=\"matter-js\";\n/**\n         * The library version.\n         * @property version\n         * @readOnly\n         * @type {String}\n         */i.version=\"0.18.0\";\n/**\n         * A list of plugin dependencies to be installed. These are normally set and installed through `Matter.use`.\n         * Alternatively you may set `Matter.uses` manually and install them by calling `Plugin.use(Matter)`.\n         * @property uses\n         * @type {Array}\n         */i.uses=[];\n/**\n         * The plugins that have been installed through `Matter.Plugin.install`. Read only.\n         * @property used\n         * @readOnly\n         * @type {Array}\n         */i.used=[];\n/**\n         * Installs the given plugins on the `Matter` namespace.\n         * This is a short-hand for `Plugin.use`, see it for more information.\n         * Call this function once at the start of your code, with all of the plugins you wish to install as arguments.\n         * Avoid calling this function multiple times unless you intend to manually control installation order.\n         * @method use\n         * @param ...plugin {Function} The plugin(s) to install on `base` (multi-argument).\n         */i.use=function(){o.use(i,Array.prototype.slice.call(arguments))};\n/**\n         * Chains a function to excute before the original function on the given `path` relative to `Matter`.\n         * See also docs for `Common.chain`.\n         * @method before\n         * @param {string} path The path relative to `Matter`\n         * @param {function} func The function to chain before the original\n         * @return {function} The chained function that replaced the original\n         */i.before=function(e,t){e=e.replace(/^Matter./,\"\");return r.chainPathBefore(i,e,t)};\n/**\n         * Chains a function to excute after the original function on the given `path` relative to `Matter`.\n         * See also docs for `Common.chain`.\n         * @method after\n         * @param {string} path The path relative to `Matter`\n         * @param {function} func The function to chain after the original\n         * @return {function} The chained function that replaced the original\n         */i.after=function(e,t){e=e.replace(/^Matter./,\"\");return r.chainPathAfter(i,e,t)}})()},function(e,t,n){var i={};e.exports=i;var o=n(5);var r=n(10);var a=n(0);var s=n(6);var l=n(12);var c=a.deprecated;(function(){\n/**\n         * Create a new composite containing bodies created in the callback in a grid arrangement.\n         * This function uses the body's bounds to prevent overlaps.\n         * @method stack\n         * @param {number} xx\n         * @param {number} yy\n         * @param {number} columns\n         * @param {number} rows\n         * @param {number} columnGap\n         * @param {number} rowGap\n         * @param {function} callback\n         * @return {composite} A new composite containing objects created in the callback\n         */\ni.stack=function(e,t,n,i,r,a,l){var c,u=o.create({label:\"Stack\"}),f=e,d=t,p=0;for(var v=0;v<i;v++){var y=0;for(var m=0;m<n;m++){var g=l(f,d,m,v,c,p);if(g){var x=g.bounds.max.y-g.bounds.min.y,h=g.bounds.max.x-g.bounds.min.x;x>y&&(y=x);s.translate(g,{x:.5*h,y:.5*x});f=g.bounds.max.x+r;o.addBody(u,g);c=g;p+=1}else f+=r}d+=y+a;f=e}return u};\n/**\n         * Chains all bodies in the given composite together using constraints.\n         * @method chain\n         * @param {composite} composite\n         * @param {number} xOffsetA\n         * @param {number} yOffsetA\n         * @param {number} xOffsetB\n         * @param {number} yOffsetB\n         * @param {object} options\n         * @return {composite} A new composite containing objects chained together with constraints\n         */i.chain=function(e,t,n,i,s,l){var c=e.bodies;for(var u=1;u<c.length;u++){var f=c[u-1],d=c[u],p=f.bounds.max.y-f.bounds.min.y,v=f.bounds.max.x-f.bounds.min.x,y=d.bounds.max.y-d.bounds.min.y,m=d.bounds.max.x-d.bounds.min.x;var g={bodyA:f,pointA:{x:v*t,y:p*n},bodyB:d,pointB:{x:m*i,y:y*s}};var x=a.extend(g,l);o.addConstraint(e,r.create(x))}e.label+=\" Chain\";return e};\n/**\n         * Connects bodies in the composite with constraints in a grid pattern, with optional cross braces.\n         * @method mesh\n         * @param {composite} composite\n         * @param {number} columns\n         * @param {number} rows\n         * @param {boolean} crossBrace\n         * @param {object} options\n         * @return {composite} The composite containing objects meshed together with constraints\n         */i.mesh=function(e,t,n,i,s){var l,c,u,f,d,p=e.bodies;for(l=0;l<n;l++){for(c=1;c<t;c++){u=p[c-1+l*t];f=p[c+l*t];o.addConstraint(e,r.create(a.extend({bodyA:u,bodyB:f},s)))}if(l>0)for(c=0;c<t;c++){u=p[c+(l-1)*t];f=p[c+l*t];o.addConstraint(e,r.create(a.extend({bodyA:u,bodyB:f},s)));if(i&&c>0){d=p[c-1+(l-1)*t];o.addConstraint(e,r.create(a.extend({bodyA:d,bodyB:f},s)))}if(i&&c<t-1){d=p[c+1+(l-1)*t];o.addConstraint(e,r.create(a.extend({bodyA:d,bodyB:f},s)))}}}e.label+=\" Mesh\";return e};\n/**\n         * Create a new composite containing bodies created in the callback in a pyramid arrangement.\n         * This function uses the body's bounds to prevent overlaps.\n         * @method pyramid\n         * @param {number} xx\n         * @param {number} yy\n         * @param {number} columns\n         * @param {number} rows\n         * @param {number} columnGap\n         * @param {number} rowGap\n         * @param {function} callback\n         * @return {composite} A new composite containing objects created in the callback\n         */i.pyramid=function(e,t,n,o,r,a,l){return i.stack(e,t,n,o,r,a,(function(t,i,a,c,u,f){var d=Math.min(o,Math.ceil(n/2)),p=u?u.bounds.max.x-u.bounds.min.x:0;if(!(c>d)){c=d-c;var v=c,y=n-1-c;if(!(a<v||a>y)){1===f&&s.translate(u,{x:(a+(n%2===1?1:-1))*p,y:0});var m=u?a*p:0;return l(e+m+a*r,i,a,c,u,f)}}}))};\n/**\n         * This has now moved to the [newtonsCradle example](https://github.com/liabru/matter-js/blob/master/examples/newtonsCradle.js), follow that instead as this function is deprecated here.\n         * @deprecated moved to newtonsCradle example\n         * @method newtonsCradle\n         * @param {number} xx\n         * @param {number} yy\n         * @param {number} number\n         * @param {number} size\n         * @param {number} length\n         * @return {composite} A new composite newtonsCradle body\n         */i.newtonsCradle=function(e,t,n,i,a){var s=o.create({label:\"Newtons Cradle\"});for(var c=0;c<n;c++){var u=1.9,f=l.circle(e+c*(i*u),t+a,i,{inertia:Infinity,restitution:1,friction:0,frictionAir:1e-4,slop:1}),d=r.create({pointA:{x:e+c*(i*u),y:t},bodyB:f});o.addBody(s,f);o.addConstraint(s,d)}return s};c(i,\"newtonsCradle\",\"Composites.newtonsCradle \u27A4 moved to newtonsCradle example\");\n/**\n         * This has now moved to the [car example](https://github.com/liabru/matter-js/blob/master/examples/car.js), follow that instead as this function is deprecated here.\n         * @deprecated moved to car example\n         * @method car\n         * @param {number} xx\n         * @param {number} yy\n         * @param {number} width\n         * @param {number} height\n         * @param {number} wheelSize\n         * @return {composite} A new composite car body\n         */i.car=function(e,t,n,i,a){var c=s.nextGroup(true),u=20,f=.5*-n+u,d=.5*n-u,p=0;var v=o.create({label:\"Car\"}),y=l.rectangle(e,t,n,i,{collisionFilter:{group:c},chamfer:{radius:.5*i},density:2e-4});var m=l.circle(e+f,t+p,a,{collisionFilter:{group:c},friction:.8});var g=l.circle(e+d,t+p,a,{collisionFilter:{group:c},friction:.8});var x=r.create({bodyB:y,pointB:{x:f,y:p},bodyA:m,stiffness:1,length:0});var h=r.create({bodyB:y,pointB:{x:d,y:p},bodyA:g,stiffness:1,length:0});o.addBody(v,y);o.addBody(v,m);o.addBody(v,g);o.addConstraint(v,x);o.addConstraint(v,h);return v};c(i,\"car\",\"Composites.car \u27A4 moved to car example\");\n/**\n         * This has now moved to the [softBody example](https://github.com/liabru/matter-js/blob/master/examples/softBody.js)\n         * and the [cloth example](https://github.com/liabru/matter-js/blob/master/examples/cloth.js), follow those instead as this function is deprecated here.\n         * @deprecated moved to softBody and cloth examples\n         * @method softBody\n         * @param {number} xx\n         * @param {number} yy\n         * @param {number} columns\n         * @param {number} rows\n         * @param {number} columnGap\n         * @param {number} rowGap\n         * @param {boolean} crossBrace\n         * @param {number} particleRadius\n         * @param {} particleOptions\n         * @param {} constraintOptions\n         * @return {composite} A new composite softBody\n         */i.softBody=function(e,t,n,o,r,s,c,u,f,d){f=a.extend({inertia:Infinity},f);d=a.extend({stiffness:.2,render:{type:\"line\",anchors:false}},d);var p=i.stack(e,t,n,o,r,s,(function(e,t){return l.circle(e,t,u,f)}));i.mesh(p,n,o,c,d);p.label=\"Soft Body\";return p};c(i,\"softBody\",\"Composites.softBody \u27A4 moved to softBody and cloth examples\")})()},function(e,t,n){\n/**\n      * This module has now been replaced by `Matter.Detector`.\n      *\n      * All usage should be migrated to `Matter.Detector` or another alternative.\n      * For back-compatibility purposes this module will remain for a short term and then later removed in a future release.\n      *\n      * The `Matter.Grid` module contains methods for creating and manipulating collision broadphase grid structures.\n      *\n      * @class Grid\n      * @deprecated\n      */\nvar i={};e.exports=i;var o=n(9);var r=n(0);var a=r.deprecated;(function(){\n/**\n         * Creates a new grid.\n         * @deprecated replaced by Matter.Detector\n         * @method create\n         * @param {} options\n         * @return {grid} A new grid\n         */\ni.create=function(e){var t={buckets:{},pairs:{},pairsList:[],bucketWidth:48,bucketHeight:48};return r.extend(t,e)};\n/**\n         * The width of a single grid bucket.\n         *\n         * @property bucketWidth\n         * @type number\n         * @default 48\n         */\n/**\n         * The height of a single grid bucket.\n         *\n         * @property bucketHeight\n         * @type number\n         * @default 48\n         */\n/**\n         * Updates the grid.\n         * @deprecated replaced by Matter.Detector\n         * @method update\n         * @param {grid} grid\n         * @param {body[]} bodies\n         * @param {engine} engine\n         * @param {boolean} forceUpdate\n         */i.update=function(e,t,n,o){var r,a,s,l,c,u=n.world,f=e.buckets,d=false;for(r=0;r<t.length;r++){var p=t[r];if((!p.isSleeping||o)&&(!u.bounds||!(p.bounds.max.x<u.bounds.min.x||p.bounds.min.x>u.bounds.max.x||p.bounds.max.y<u.bounds.min.y||p.bounds.min.y>u.bounds.max.y))){var v=i._getRegion(e,p);if(!p.region||v.id!==p.region.id||o){p.region&&!o||(p.region=v);var y=i._regionUnion(v,p.region);for(a=y.startCol;a<=y.endCol;a++)for(s=y.startRow;s<=y.endRow;s++){c=i._getBucketId(a,s);l=f[c];var m=a>=v.startCol&&a<=v.endCol&&s>=v.startRow&&s<=v.endRow;var g=a>=p.region.startCol&&a<=p.region.endCol&&s>=p.region.startRow&&s<=p.region.endRow;!m&&g&&g&&l&&i._bucketRemoveBody(e,l,p);if(p.region===v||m&&!g||o){l||(l=i._createBucket(f,c));i._bucketAddBody(e,l,p)}}p.region=v;d=true}}}d&&(e.pairsList=i._createActivePairsList(e))};a(i,\"update\",\"Grid.update \u27A4 replaced by Matter.Detector\");\n/**\n         * Clears the grid.\n         * @deprecated replaced by Matter.Detector\n         * @method clear\n         * @param {grid} grid\n         */i.clear=function(e){e.buckets={};e.pairs={};e.pairsList=[]};a(i,\"clear\",\"Grid.clear \u27A4 replaced by Matter.Detector\");\n/**\n         * Finds the union of two regions.\n         * @method _regionUnion\n         * @deprecated replaced by Matter.Detector\n         * @private\n         * @param {} regionA\n         * @param {} regionB\n         * @return {} region\n         */i._regionUnion=function(e,t){var n=Math.min(e.startCol,t.startCol),o=Math.max(e.endCol,t.endCol),r=Math.min(e.startRow,t.startRow),a=Math.max(e.endRow,t.endRow);return i._createRegion(n,o,r,a)};\n/**\n         * Gets the region a given body falls in for a given grid.\n         * @method _getRegion\n         * @deprecated replaced by Matter.Detector\n         * @private\n         * @param {} grid\n         * @param {} body\n         * @return {} region\n         */i._getRegion=function(e,t){var n=t.bounds,o=Math.floor(n.min.x/e.bucketWidth),r=Math.floor(n.max.x/e.bucketWidth),a=Math.floor(n.min.y/e.bucketHeight),s=Math.floor(n.max.y/e.bucketHeight);return i._createRegion(o,r,a,s)};\n/**\n         * Creates a region.\n         * @method _createRegion\n         * @deprecated replaced by Matter.Detector\n         * @private\n         * @param {} startCol\n         * @param {} endCol\n         * @param {} startRow\n         * @param {} endRow\n         * @return {} region\n         */i._createRegion=function(e,t,n,i){return{id:e+\",\"+t+\",\"+n+\",\"+i,startCol:e,endCol:t,startRow:n,endRow:i}};\n/**\n         * Gets the bucket id at the given position.\n         * @method _getBucketId\n         * @deprecated replaced by Matter.Detector\n         * @private\n         * @param {} column\n         * @param {} row\n         * @return {string} bucket id\n         */i._getBucketId=function(e,t){return\"C\"+e+\"R\"+t};\n/**\n         * Creates a bucket.\n         * @method _createBucket\n         * @deprecated replaced by Matter.Detector\n         * @private\n         * @param {} buckets\n         * @param {} bucketId\n         * @return {} bucket\n         */i._createBucket=function(e,t){var n=e[t]=[];return n};\n/**\n         * Adds a body to a bucket.\n         * @method _bucketAddBody\n         * @deprecated replaced by Matter.Detector\n         * @private\n         * @param {} grid\n         * @param {} bucket\n         * @param {} body\n         */i._bucketAddBody=function(e,t,n){var i,r=e.pairs,a=o.id,s=t.length;for(i=0;i<s;i++){var l=t[i];if(!(n.id===l.id||n.isStatic&&l.isStatic)){var c=a(n,l),u=r[c];u?u[2]+=1:r[c]=[n,l,1]}}t.push(n)};\n/**\n         * Removes a body from a bucket.\n         * @method _bucketRemoveBody\n         * @deprecated replaced by Matter.Detector\n         * @private\n         * @param {} grid\n         * @param {} bucket\n         * @param {} body\n         */i._bucketRemoveBody=function(e,t,n){var i,a=e.pairs,s=o.id;t.splice(r.indexOf(t,n),1);var l=t.length;for(i=0;i<l;i++){var c=a[s(n,t[i])];c&&(c[2]-=1)}};\n/**\n         * Generates a list of the active pairs in the grid.\n         * @method _createActivePairsList\n         * @deprecated replaced by Matter.Detector\n         * @private\n         * @param {} grid\n         * @return [] pairs\n         */i._createActivePairsList=function(e){var t,n,i=e.pairs,o=r.keys(i),a=o.length,s=[];for(n=0;n<a;n++){t=i[o[n]];t[2]>0?s.push(t):delete i[o[n]]}return s}})()},function(e,t,n){var i={};e.exports=i;var o=n(3);var r=n(7);var a=n(13);var s=n(4);var l=n(14);var c=n(10);var u=n(5);var f=n(0);var d=n(1);(function(){\n/**\n         * Creates a new mouse constraint.\n         * All properties have default values, and many are pre-calculated automatically based on other properties.\n         * See the properties section below for detailed information on what you can pass via the `options` object.\n         * @method create\n         * @param {engine} engine\n         * @param {} options\n         * @return {MouseConstraint} A new MouseConstraint\n         */\ni.create=function(e,t){var n=(e?e.mouse:null)||(t?t.mouse:null);if(!n)if(e&&e.render&&e.render.canvas)n=a.create(e.render.canvas);else if(t&&t.element)n=a.create(t.element);else{n=a.create();f.warn(\"MouseConstraint.create: options.mouse was undefined, options.element was undefined, may not function as expected\")}var o=c.create({label:\"Mouse Constraint\",pointA:n.position,pointB:{x:0,y:0},length:.01,stiffness:.1,angularStiffness:1,render:{strokeStyle:\"#90EE90\",lineWidth:3}});var r={type:\"mouseConstraint\",mouse:n,element:null,body:null,constraint:o,collisionFilter:{category:1,mask:4294967295,group:0}};var l=f.extend(r,t);s.on(e,\"beforeUpdate\",(function(){var t=u.allBodies(e.world);i.update(l,t);i._triggerEvents(l)}));return l};\n/**\n         * Updates the given mouse constraint.\n         * @private\n         * @method update\n         * @param {MouseConstraint} mouseConstraint\n         * @param {body[]} bodies\n         */i.update=function(e,t){var n=e.mouse,i=e.constraint,a=e.body;if(0===n.button)if(i.bodyB){r.set(i.bodyB,false);i.pointA=n.position}else for(var c=0;c<t.length;c++){a=t[c];if(d.contains(a.bounds,n.position)&&l.canCollide(a.collisionFilter,e.collisionFilter))for(var u=a.parts.length>1?1:0;u<a.parts.length;u++){var f=a.parts[u];if(o.contains(f.vertices,n.position)){i.pointA=n.position;i.bodyB=e.body=a;i.pointB={x:n.position.x-a.position.x,y:n.position.y-a.position.y};i.angleB=a.angle;r.set(a,false);s.trigger(e,\"startdrag\",{mouse:n,body:a});break}}}else{i.bodyB=e.body=null;i.pointB=null;a&&s.trigger(e,\"enddrag\",{mouse:n,body:a})}};\n/**\n         * Triggers mouse constraint events.\n         * @method _triggerEvents\n         * @private\n         * @param {mouse} mouseConstraint\n         */i._triggerEvents=function(e){var t=e.mouse,n=t.sourceEvents;n.mousemove&&s.trigger(e,\"mousemove\",{mouse:t});n.mousedown&&s.trigger(e,\"mousedown\",{mouse:t});n.mouseup&&s.trigger(e,\"mouseup\",{mouse:t});a.clearSourceEvents(t)};\n/**\n        * Fired when the mouse has moved (or a touch moves) during the last step\n        *\n        * @event mousemove\n        * @param {} event An event object\n        * @param {mouse} event.mouse The engine's mouse instance\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n        * Fired when the mouse is down (or a touch has started) during the last step\n        *\n        * @event mousedown\n        * @param {} event An event object\n        * @param {mouse} event.mouse The engine's mouse instance\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n        * Fired when the mouse is up (or a touch has ended) during the last step\n        *\n        * @event mouseup\n        * @param {} event An event object\n        * @param {mouse} event.mouse The engine's mouse instance\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n        * Fired when the user starts dragging a body\n        *\n        * @event startdrag\n        * @param {} event An event object\n        * @param {mouse} event.mouse The engine's mouse instance\n        * @param {body} event.body The body being dragged\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n        * Fired when the user ends dragging a body\n        *\n        * @event enddrag\n        * @param {} event An event object\n        * @param {mouse} event.mouse The engine's mouse instance\n        * @param {body} event.body The body that has stopped being dragged\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n         * A `String` denoting the type of object.\n         *\n         * @property type\n         * @type string\n         * @default \"constraint\"\n         * @readOnly\n         */\n/**\n         * The `Mouse` instance in use. If not supplied in `MouseConstraint.create`, one will be created.\n         *\n         * @property mouse\n         * @type mouse\n         * @default mouse\n         */\n/**\n         * The `Body` that is currently being moved by the user, or `null` if no body.\n         *\n         * @property body\n         * @type body\n         * @default null\n         */\n/**\n         * The `Constraint` object that is used to move the body during interaction.\n         *\n         * @property constraint\n         * @type constraint\n         */\n/**\n         * An `Object` that specifies the collision filter properties.\n         * The collision filter allows the user to define which types of body this mouse constraint can interact with.\n         * See `body.collisionFilter` for more information.\n         *\n         * @property collisionFilter\n         * @type object\n         */})()},function(e,t,n){var i={};e.exports=i;var o=n(2);var r=n(8);var a=n(1);var s=n(12);var l=n(3);(function(){\n/**\n         * Returns a list of collisions between `body` and `bodies`.\n         * @method collides\n         * @param {body} body\n         * @param {body[]} bodies\n         * @return {collision[]} Collisions\n         */\ni.collides=function(e,t){var n=[],i=t.length,o=e.bounds,s=r.collides,l=a.overlaps;for(var c=0;c<i;c++){var u=t[c],f=u.parts.length,d=1===f?0:1;if(l(u.bounds,o))for(var p=d;p<f;p++){var v=u.parts[p];if(l(v.bounds,o)){var y=s(v,e);if(y){n.push(y);break}}}}return n};\n/**\n         * Casts a ray segment against a set of bodies and returns all collisions, ray width is optional. Intersection points are not provided.\n         * @method ray\n         * @param {body[]} bodies\n         * @param {vector} startPoint\n         * @param {vector} endPoint\n         * @param {number} [rayWidth]\n         * @return {collision[]} Collisions\n         */i.ray=function(e,t,n,r){r=r||1e-100;var a=o.angle(t,n),l=o.magnitude(o.sub(t,n)),c=.5*(n.x+t.x),u=.5*(n.y+t.y),f=s.rectangle(c,u,l,r,{angle:a}),d=i.collides(f,e);for(var p=0;p<d.length;p+=1){var v=d[p];v.body=v.bodyB=v.bodyA}return d};\n/**\n         * Returns all bodies whose bounds are inside (or outside if set) the given set of bounds, from the given set of bodies.\n         * @method region\n         * @param {body[]} bodies\n         * @param {bounds} bounds\n         * @param {bool} [outside=false]\n         * @return {body[]} The bodies matching the query\n         */i.region=function(e,t,n){var i=[];for(var o=0;o<e.length;o++){var r=e[o],s=a.overlaps(r.bounds,t);(s&&!n||!s&&n)&&i.push(r)}return i};\n/**\n         * Returns all bodies whose vertices contain the given point, from the given set of bodies.\n         * @method point\n         * @param {body[]} bodies\n         * @param {vector} point\n         * @return {body[]} The bodies matching the query\n         */i.point=function(e,t){var n=[];for(var i=0;i<e.length;i++){var o=e[i];if(a.contains(o.bounds,t))for(var r=1===o.parts.length?0:1;r<o.parts.length;r++){var s=o.parts[r];if(a.contains(s.bounds,t)&&l.contains(s.vertices,t)){n.push(o);break}}}return n}})()},function(e,t,n){var i={};e.exports=i;var o=n(4);var r=n(18);var a=n(0);(function(){var e,t;if(\"undefined\"!==typeof window){e=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.msRequestAnimationFrame;t=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame||window.msCancelAnimationFrame}if(!e){var n;e=function(e){n=setTimeout((function(){e(a.now())}),1e3/60)};t=function(){clearTimeout(n)}}\n/**\n         * Creates a new Runner. The options parameter is an object that specifies any properties you wish to override the defaults.\n         * @method create\n         * @param {} options\n         */i.create=function(e){var t={fps:60,correction:1,deltaSampleSize:60,counterTimestamp:0,frameCounter:0,deltaHistory:[],timePrev:null,timeScalePrev:1,frameRequestId:null,isFixed:false,enabled:true};var n=a.extend(t,e);n.delta=n.delta||1e3/n.fps;n.deltaMin=n.deltaMin||1e3/n.fps;n.deltaMax=n.deltaMax||1e3/(.5*n.fps);n.fps=1e3/n.delta;return n};\n/**\n         * Continuously ticks a `Matter.Engine` by calling `Runner.tick` on the `requestAnimationFrame` event.\n         * @method run\n         * @param {engine} engine\n         */i.run=function(t,n){if(\"undefined\"!==typeof t.positionIterations){n=t;t=i.create()}(function render(o){t.frameRequestId=e(render);o&&t.enabled&&i.tick(t,n,o)})();return t};\n/**\n         * A game loop utility that updates the engine and renderer by one step (a 'tick').\n         * Features delta smoothing, time correction and fixed or dynamic timing.\n         * Consider just `Engine.update(engine, delta)` if you're using your own loop.\n         * @method tick\n         * @param {runner} runner\n         * @param {engine} engine\n         * @param {number} time\n         */i.tick=function(e,t,n){var i,a=t.timing,s=1;var l={timestamp:a.timestamp};o.trigger(e,\"beforeTick\",l);if(e.isFixed)i=e.delta;else{i=n-e.timePrev||e.delta;e.timePrev=n;e.deltaHistory.push(i);e.deltaHistory=e.deltaHistory.slice(-e.deltaSampleSize);i=Math.min.apply(null,e.deltaHistory);i=i<e.deltaMin?e.deltaMin:i;i=i>e.deltaMax?e.deltaMax:i;s=i/e.delta;e.delta=i}0!==e.timeScalePrev&&(s*=a.timeScale/e.timeScalePrev);0===a.timeScale&&(s=0);e.timeScalePrev=a.timeScale;e.correction=s;e.frameCounter+=1;if(n-e.counterTimestamp>=1e3){e.fps=e.frameCounter*((n-e.counterTimestamp)/1e3);e.counterTimestamp=n;e.frameCounter=0}o.trigger(e,\"tick\",l);o.trigger(e,\"beforeUpdate\",l);r.update(t,i,s);o.trigger(e,\"afterUpdate\",l);o.trigger(e,\"afterTick\",l)};\n/**\n         * Ends execution of `Runner.run` on the given `runner`, by canceling the animation frame request event loop.\n         * If you wish to only temporarily pause the engine, see `engine.enabled` instead.\n         * @method stop\n         * @param {runner} runner\n         */i.stop=function(e){t(e.frameRequestId)};\n/**\n         * Alias for `Runner.run`.\n         * @method start\n         * @param {runner} runner\n         * @param {engine} engine\n         */i.start=function(e,t){i.run(e,t)};\n/**\n        * Fired at the start of a tick, before any updates to the engine or timing\n        *\n        * @event beforeTick\n        * @param {} event An event object\n        * @param {number} event.timestamp The engine.timing.timestamp of the event\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n        * Fired after engine timing updated, but just before update\n        *\n        * @event tick\n        * @param {} event An event object\n        * @param {number} event.timestamp The engine.timing.timestamp of the event\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n        * Fired at the end of a tick, after engine update and after rendering\n        *\n        * @event afterTick\n        * @param {} event An event object\n        * @param {number} event.timestamp The engine.timing.timestamp of the event\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n        * Fired before update\n        *\n        * @event beforeUpdate\n        * @param {} event An event object\n        * @param {number} event.timestamp The engine.timing.timestamp of the event\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n        * Fired after update\n        *\n        * @event afterUpdate\n        * @param {} event An event object\n        * @param {number} event.timestamp The engine.timing.timestamp of the event\n        * @param {} event.source The source object of the event\n        * @param {} event.name The name of the event\n        */\n/**\n         * A flag that specifies whether the runner is running or not.\n         *\n         * @property enabled\n         * @type boolean\n         * @default true\n         */\n/**\n         * A `Boolean` that specifies if the runner should use a fixed timestep (otherwise it is variable).\n         * If timing is fixed, then the apparent simulation speed will change depending on the frame rate (but behaviour will be deterministic).\n         * If the timing is variable, then the apparent simulation speed will be constant (approximately, but at the cost of determininism).\n         *\n         * @property isFixed\n         * @type boolean\n         * @default false\n         */\n/**\n         * A `Number` that specifies the time step between updates in milliseconds.\n         * If `engine.timing.isFixed` is set to `true`, then `delta` is fixed.\n         * If it is `false`, then `delta` can dynamically change to maintain the correct apparent simulation speed.\n         *\n         * @property delta\n         * @type number\n         * @default 1000 / 60\n         */})()},function(e,t,n){\n/**\n      * This module has now been replaced by `Matter.Collision`.\n      *\n      * All usage should be migrated to `Matter.Collision`.\n      * For back-compatibility purposes this module will remain for a short term and then later removed in a future release.\n      *\n      * The `Matter.SAT` module contains methods for detecting collisions using the Separating Axis Theorem.\n      *\n      * @class SAT\n      * @deprecated\n      */\nvar i={};e.exports=i;var o=n(8);var r=n(0);var a=r.deprecated;(function(){\n/**\n         * Detect collision between two bodies using the Separating Axis Theorem.\n         * @deprecated replaced by Collision.collides\n         * @method collides\n         * @param {body} bodyA\n         * @param {body} bodyB\n         * @return {collision} collision\n         */\ni.collides=function(e,t){return o.collides(e,t)};a(i,\"collides\",\"SAT.collides \u27A4 replaced by Collision.collides\")})()},function(e,t,n){var i={};e.exports=i;n(1);var o=n(0);(function(){\n/**\n         * Converts an SVG path into an array of vector points.\n         * If the input path forms a concave shape, you must decompose the result into convex parts before use.\n         * See `Bodies.fromVertices` which provides support for this.\n         * Note that this function is not guaranteed to support complex paths (such as those with holes).\n         * You must load the `pathseg.js` polyfill on newer browsers.\n         * @method pathToVertices\n         * @param {SVGPathElement} path\n         * @param {Number} [sampleLength=15]\n         * @return {Vector[]} points\n         */\ni.pathToVertices=function(e,t){\"undefined\"===typeof window||\"SVGPathSeg\"in window||o.warn(\"Svg.pathToVertices: SVGPathSeg not defined, a polyfill is required.\");var n,r,a,s,l,c,u,f,d,p,v,y,m=[],g=0,x=0,h=0;t=t||15;var addPoint=function(e,t,n){var i=n%2===1&&n>1;if(!d||e!=d.x||t!=d.y){if(d&&i){v=d.x;y=d.y}else{v=0;y=0}var o={x:v+e,y:y+t};!i&&d||(d=o);m.push(o);x=v+e;h=y+t}};var addSegmentPoint=function(e){var t=e.pathSegTypeAsLetter.toUpperCase();if(\"Z\"!==t){switch(t){case\"M\":case\"L\":case\"T\":case\"C\":case\"S\":case\"Q\":x=e.x;h=e.y;break;case\"H\":x=e.x;break;case\"V\":h=e.y;break}addPoint(x,h,e.pathSegType)}};i._svgPathToAbsolute(e);a=e.getTotalLength();c=[];for(n=0;n<e.pathSegList.numberOfItems;n+=1)c.push(e.pathSegList.getItem(n));u=c.concat();while(g<a){p=e.getPathSegAtLength(g);l=c[p];if(l!=f){while(u.length&&u[0]!=l)addSegmentPoint(u.shift());f=l}switch(l.pathSegTypeAsLetter.toUpperCase()){case\"C\":case\"T\":case\"S\":case\"Q\":case\"A\":s=e.getPointAtLength(g);addPoint(s.x,s.y,0);break}g+=t}for(n=0,r=u.length;n<r;++n)addSegmentPoint(u[n]);return m};i._svgPathToAbsolute=function(e){var t,n,i,o,r,a,s=e.pathSegList,l=0,c=0,u=s.numberOfItems;for(var f=0;f<u;++f){var d=s.getItem(f),p=d.pathSegTypeAsLetter;if(/[MLHVCSQTA]/.test(p)){\"x\"in d&&(l=d.x);\"y\"in d&&(c=d.y)}else{\"x1\"in d&&(i=l+d.x1);\"x2\"in d&&(r=l+d.x2);\"y1\"in d&&(o=c+d.y1);\"y2\"in d&&(a=c+d.y2);\"x\"in d&&(l+=d.x);\"y\"in d&&(c+=d.y);switch(p){case\"m\":s.replaceItem(e.createSVGPathSegMovetoAbs(l,c),f);break;case\"l\":s.replaceItem(e.createSVGPathSegLinetoAbs(l,c),f);break;case\"h\":s.replaceItem(e.createSVGPathSegLinetoHorizontalAbs(l),f);break;case\"v\":s.replaceItem(e.createSVGPathSegLinetoVerticalAbs(c),f);break;case\"c\":s.replaceItem(e.createSVGPathSegCurvetoCubicAbs(l,c,i,o,r,a),f);break;case\"s\":s.replaceItem(e.createSVGPathSegCurvetoCubicSmoothAbs(l,c,r,a),f);break;case\"q\":s.replaceItem(e.createSVGPathSegCurvetoQuadraticAbs(l,c,i,o),f);break;case\"t\":s.replaceItem(e.createSVGPathSegCurvetoQuadraticSmoothAbs(l,c),f);break;case\"a\":s.replaceItem(e.createSVGPathSegArcAbs(l,c,d.r1,d.r2,d.angle,d.largeArcFlag,d.sweepFlag),f);break;case\"z\":case\"Z\":l=t;c=n;break}}if(\"M\"==p||\"m\"==p){t=l;n=c}}}})()},function(e,t,n){var i={};e.exports=i;var o=n(5);n(0);(function(){i.create=o.create;i.add=o.add;i.remove=o.remove;i.clear=o.clear;i.addComposite=o.addComposite;i.addBody=o.addBody;i.addConstraint=o.addConstraint})()}])}));var n=t;const i=t.Matter,o=t.__esModule;export{i as Matter,o as __esModule,n as default};\n\n//# sourceMappingURL=matter.js.map", "import Matter from\"matter-js\";const opts={isStatic:true,friction:2};export function makeWalls(conainerBounding,engine,wallOptions){var Bodies=Matter.Bodies;let bottom,top,wLeft,wRight;if(wallOptions.bottom){bottom=Bodies.rectangle(conainerBounding.width/2,conainerBounding.height+50,conainerBounding.width+100,100,opts);Matter.World.add(engine,bottom);}if(wallOptions.top){top=Bodies.rectangle(conainerBounding.width/2,-50,conainerBounding.width+100,100,opts);Matter.World.add(engine,top);}if(wallOptions.right){wRight=Bodies.rectangle(conainerBounding.width+50,conainerBounding.height/2,100,conainerBounding.height,opts);Matter.World.add(engine,wRight);}if(wallOptions.bottom){wLeft=Bodies.rectangle(-50,conainerBounding.height/2,100,conainerBounding.height,opts);Matter.World.add(engine,wLeft);}}\nexport const __FramerMetadata__ = {\"exports\":{\"makeWalls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MakeWalls.map", "import Matter from\"matter-js\";export function makeBodies(container,world,elements,frictionOpts,densityOpts){const conainerBounding=container.getBoundingClientRect();let stack=Matter.Composites.stack(0,0,elements.length,1,0,0,(xx,yy,i)=>{const{x,y,width,height}=elements[i].getBoundingClientRect();var maxLeft=conainerBounding.width-width;var maxTop=conainerBounding.height-height;// Places the elements at random locations\n// Could be expanded to allow control of body placement from property controls\nvar tLeft=Math.floor(Math.random()*maxLeft),tTop=Math.floor(Math.random()*maxTop);return Matter.Bodies.rectangle(tLeft,tTop,width,height,{isStatic:false,density:densityOpts.enable?densityOpts.density:0,friction:frictionOpts.friction,frictionAir:frictionOpts.frictionAir});});Matter.World.add(world,stack);return stack;}\nexport const __FramerMetadata__ = {\"exports\":{\"makeBodies\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MakeBodies.map", "import{jsx as _jsx}from\"react/jsx-runtime\";import React from\"react\";import Matter from\"matter-js\";import{addPropertyControls,ControlType}from\"framer\";import{makeWalls}from\"https://framer.com/m/MakeWalls-36kf.js@Ok6wam0uM9G4VUuXWgpR\";import{makeBodies}from\"https://framer.com/m/MakeBodies-Lkv1.js@LTuIQWugGJr30ZUS1CV9\";/**\n * These annotations control how your component sizes\n * Learn more: https://www.framer.com/docs/guides/auto-sizing\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function Physics(props){var _props_children;let engine;React.useEffect(()=>{if(!engine){engine=Matter.Engine.create({enableSleeping:props.sleeping,gravity:{y:props.gravY,x:props.gravX}});const containerBounding=containerRef.current.getBoundingClientRect();makeWalls(containerBounding,engine.world,props.wallOptions);if(props.debug){var render=Matter.Render.create({element:containerRef.current,engine:engine,options:{height:containerBounding.height,width:containerBounding.width,showAngleIndicator:true,showVelocity:true}});Matter.Render.run(render);}let mouseConstraint=null;if(props.mouseOptions.enable){let mouse=Matter.Mouse.create(containerRef.current);mouseConstraint=Matter.MouseConstraint.create(engine,{mouse:mouse,constraint:{angularStiffness:props.mouseOptions.angularStiffness,stiffness:props.mouseOptions.stiffness}});Matter.Composite.add(engine.world,mouseConstraint);// Remove the many event listeners preventing scroll/drag\nmouseConstraint.mouse.element.removeEventListener(\"mousewheel\",mouseConstraint.mouse.mousewheel);mouseConstraint.mouse.element.removeEventListener(\"DOMMouseScroll\",mouseConstraint.mouse.mousewheel);mouseConstraint.mouse.element.removeEventListener(\"touchstart\",mouseConstraint.mouse.mousedown);mouseConstraint.mouse.element.removeEventListener(\"touchmove\",mouseConstraint.mouse.mousemove);mouseConstraint.mouse.element.removeEventListener(\"touchend\",mouseConstraint.mouse.mouseup);mouseConstraint.mouse.element.addEventListener(\"touchstart\",mouseConstraint.mouse.mousedown,{passive:true});mouseConstraint.mouse.element.addEventListener(\"touchmove\",e=>{if(mouseConstraint.body){mouseConstraint.mouse.mousemove(e);}});mouseConstraint.mouse.element.addEventListener(\"touchend\",e=>{if(mouseConstraint.body){mouseConstraint.mouse.mouseup(e);}});containerRef.current.addEventListener(\"mouseleave\",()=>{mouseConstraint.mouse.mouseup(event);});}let stack=makeBodies(containerRef.current,engine.world,containerRef.current.children,props.frictionOptions,props.densityOptions);(function update(){requestAnimationFrame(update);stack.bodies.forEach((block,i)=>{let el=containerRef.current.children[i];let{x,y}=block.vertices[0];el.style.visibility=\"visible\";el.style.top=`${y}px`;el.style.left=`${x}px`;el.style.transform=`\n                          translate(-50%, -50%)\n                          rotate(${block.angle}rad) \n                          translate(50%, 50%)\n                          `;});//\nMatter.Engine.update(engine);})();}},[]);const containerRef=React.useRef(null);return /*#__PURE__*/_jsx(\"div\",{style:containerStyle,ref:containerRef,draggable:\"false\",onDragStart:e=>{e.preventDefault();},children:((_props_children=props.children)===null||_props_children===void 0?void 0:_props_children.length)>0?props.children.map((el,i)=>{return /*#__PURE__*/_jsx(\"div\",{style:bodyStyle,id:\"physics-body\",draggable:\"false\",children:el});}):/*#__PURE__*/_jsx(\"div\",{style:bodyStyle,id:\"physics-body\",draggable:\"false\",children:props.children})});}// Styles are written in object syntax\n// Learn more: https://reactjs.org/docs/dom-elements.html#style\nconst containerStyle={height:\"100%\",width:\"100%\",overflow:\"hidden\"};const bodyStyle={position:\"absolute\",visibility:\"hidden\"};Physics.defaultProps={gravX:0,gravY:1,children:{},wallOptions:{top:true,bottom:true,right:true,left:true},frictionOptions:{friction:.1,frictionAir:.01},mouseOptions:{angularStiffnes:0,stiffness:.2,enable:true},densityOptions:{enable:true,density:.001},sleeping:false};addPropertyControls(Physics,{children:{type:ControlType.Array,control:{type:ControlType.ComponentInstance}},gravY:{type:ControlType.Number,defaultValue:1,max:5,min:-5,step:.25,title:\"Gravity Y\"},gravX:{type:ControlType.Number,defaultValue:0,max:5,min:-5,step:.25,title:\"Gravity X\"},wallOptions:{title:\"Walls\",type:ControlType.Object,controls:{top:{type:ControlType.Boolean,defaultValue:true},bottom:{type:ControlType.Boolean,defaultValue:true},right:{type:ControlType.Boolean,defaultValue:true},left:{type:ControlType.Boolean,defaultValue:true}}},mouseOptions:{title:\"Mouse\",type:ControlType.Object,controls:{enable:{title:\"Enable\",type:ControlType.Boolean,defaultValue:true},angularStiffness:{title:\"Angular stiffness\",description:\"A value of 0 allows objects to swing when held by the mouse\",type:ControlType.Number,defaultValue:0,min:0,max:1,step:.01},stiffness:{title:\"Stiffness\",description:\"Click + drag creates a moving constraint (spring) that follows the mouse. This describes the stiffness of that spring\",type:ControlType.Number,defaultValue:.2,min:.001,max:1,step:.01}}},friction:{type:ControlType.Object,controls:{friction:{title:\"Body friction\",type:ControlType.Number,min:0,max:1,defaultValue:.1,step:.01},frictionAir:{title:\"Air friction\",type:ControlType.Number,min:0,max:1,defaultValue:.01,step:.01}}},densityOptions:{title:\"Density\",type:ControlType.Object,controls:{enable:{type:ControlType.Boolean,defaultValue:true,description:\"Enabling density will cause mass to be calculated based on width and height\"},density:{type:ControlType.Number,defaultValue:.001,min:.001,max:1,step:.01}}},sleeping:{title:\"Sleeping\",description:\"Improves performance at the cost of simulation accuracy\",type:ControlType.Boolean,defaultValue:false}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Physics\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Physics.map", "// Generated by Framer (3fa6aa4)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,ComponentViewportProvider,cx,getFonts,Image,SVG,useComponentViewport,useLocaleInfo,useVariantState,withCSS,withFX}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import Physics from\"https://framerusercontent.com/modules/N5gPcnnCOfWUGKWW5otL/TOzdbDZWfo0lwuFMw6DQ/Physics.js\";import*as localizedValues from\"./Bq2qNuwKW-0.js\";const PhysicsFonts=getFonts(Physics);const MotionDivWithFX=withFX(motion.div);const cycleOrder=[\"RNhiASOaC\"];const serializationHash=\"framer-sPDTO\";const variantClassNames={RNhiASOaC:\"framer-v-zrj4n1\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants===null||variants===void 0?void 0:variants.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const valuesByLocaleId={Rrw7vhDwm:localizedValues};const getLocalizedValue=(key,locale)=>{while(locale){const values=valuesByLocaleId[locale.id];if(values){const value=values[key];if(value){return value;}}locale=locale.fallback;}};const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const animation={opacity:0,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transformPerspective:1200,x:0,y:100};const transition2={damping:80,delay:.2,mass:1,stiffness:400,type:\"spring\"};const animation1={opacity:0,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transformPerspective:1200,transition:transition2,x:0,y:100};const transformTemplate1=(_,t)=>`translateY(-50%) ${t}`;const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value!==null&&value!==void 0?value:config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,gestureHandlers,gestureVariant,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"RNhiASOaC\",variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const ref1=React.useRef(null);const defaultLayoutId=React.useId();const sharedStyleClassNames=[];const componentViewport=useComponentViewport();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId!==null&&layoutId!==void 0?layoutId:defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.div,{...restProps,...gestureHandlers,className:cx(serializationHash,...sharedStyleClassNames,\"framer-zrj4n1\",className,classNames),\"data-framer-name\":\"Desktop\",layoutDependency:layoutDependency,layoutId:\"RNhiASOaC\",ref:ref!==null&&ref!==void 0?ref:ref1,style:{...style},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(MotionDivWithFX,{__framer__animate:{transition:transition2},__framer__animateOnce:true,__framer__enter:animation,__framer__exit:animation1,__framer__styleAppearEffectEnabled:true,__framer__threshold:.5,__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,className:\"framer-1ar7d19-container\",layoutDependency:layoutDependency,layoutId:\"p5MymbCdR-container\",style:{transformPerspective:1200},children:/*#__PURE__*/_jsxs(Physics,{densityOptions:{density:.001,enable:true},friction:{friction:.1,frictionAir:.01},gravX:0,gravY:1,height:\"100%\",id:\"p5MymbCdR\",layoutId:\"p5MymbCdR\",mouseOptions:{angularStiffness:0,enable:true,stiffness:.2},sleeping:true,style:{height:\"100%\",maxWidth:\"100%\",width:\"100%\"},wallOptions:{bottom:true,left:true,right:true,top:true},width:\"100%\",children:[/*#__PURE__*/_jsx(SVG,{className:\"framer-15f5xj9\",\"data-framer-name\":\"java\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"UZDiOYE_Z\",opacity:1,radius:500,style:{borderBottomLeftRadius:500,borderBottomRightRadius:500,borderTopLeftRadius:500,borderTopRightRadius:500},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 80 80\"><path d=\"M 40 80 C 17.909 80 0 80 0 80 L 0 0 C 0 0 17.909 0 40 0 L 40 0 C 62.091 0 80 0 80 0 L 80 80 C 80 80 62.091 80 40 80 Z\" fill=\"rgb(255,255,255)\"></path><g transform=\"translate(21.195 14.092)\" id=\"ss11461600101_2\"><path d=\"M 38 46.168 C 37.663 50.514 23.415 51.428 14.135 50.84 C 8.082 50.457 6.869 49.496 6.851 49.482 C 12.645 50.427 22.412 50.599 30.332 49.125 C 37.351 47.816 38 46.168 38 46.168 Z\" fill=\"rgb(83,130,161)\"></path><path d=\"M 34.737 43.572 C 34.737 43.572 36.193 44.759 33.131 45.679 C 27.309 47.426 8.9 47.952 3.786 45.749 C 1.948 44.957 5.395 43.859 6.479 43.629 C 7.61 43.385 8.257 43.43 8.257 43.43 C 6.212 42.005 -4.958 46.23 2.583 47.44 C 23.147 50.741 40.071 45.953 34.737 43.572 Z\" fill=\"rgb(83,130,161)\"></path><path d=\"M 29.984 37.367 C 39.65 32.395 35.18 27.617 32.061 28.261 C 31.296 28.418 30.956 28.554 30.956 28.554 C 30.956 28.554 31.241 28.114 31.782 27.923 C 37.954 25.776 42.699 34.258 29.789 37.618 C 29.789 37.618 29.939 37.485 29.984 37.367 Z M 9.869 31.074 C 3.821 30.274 13.186 28.073 13.186 28.073 C 13.186 28.073 9.549 27.83 5.077 29.969 C -0.212 32.503 18.158 33.654 27.667 31.179 C 28.655 30.509 30.022 29.931 30.022 29.931 C 30.022 29.931 26.131 30.618 22.256 30.941 C 17.514 31.335 12.423 31.412 9.869 31.074 Z M 12.17 35.821 C 8.797 35.476 11.006 33.858 11.006 33.858 C 2.279 36.725 15.862 39.976 28.057 36.446 C 26.76 35.994 25.935 35.166 25.935 35.166 C 19.976 36.303 16.532 36.266 12.17 35.82 Z M 13.639 40.96 C 10.27 40.576 12.238 39.441 12.238 39.441 C 4.317 41.632 17.058 46.159 27.143 41.879 C 26.162 41.504 25.214 41.046 24.309 40.51 C 19.809 41.353 17.723 41.419 13.639 40.958 Z\" fill=\"rgb(83,130,161)\"></path><path d=\"M 20.745 29.767 C 20.745 29.767 23.883 27.217 21.397 24.386 C 12.974 14.776 30.612 10.417 30.612 10.417 C 19.843 15.64 21.45 18.738 24.157 22.504 C 27.055 26.543 20.745 29.767 20.745 29.767 Z\" fill=\"rgb(231,111,0)\"></path><path d=\"M 19.079 13.451 C 29.51 5.302 24.157 0 24.157 0 C 24.953 8.426 15.538 10.417 13.014 16.209 C 11.291 20.16 14.193 23.62 19.076 27.979 C 18.644 27.013 17.977 26.076 17.303 25.126 C 15.006 21.884 12.61 18.508 19.079 13.453 Z\" fill=\"rgb(231,111,0)\"></path></g></svg>',svgContentId:11461600101,withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-1gntuh3\",\"data-framer-name\":\"figma\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"AFz6fuYQE\",opacity:1,radius:500,style:{borderBottomLeftRadius:500,borderBottomRightRadius:500,borderTopLeftRadius:500,borderTopRightRadius:500},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 80 80\"><path d=\"M 40 80 C 17.909 80 0 80 0 80 L 0 0 C 0 0 17.909 0 40 0 L 40 0 C 62.091 0 80 0 80 0 L 80 80 C 80 80 62.091 80 40 80 Z\" fill=\"rgb(51,51,51)\"></path><path d=\"M 32.593 62.222 C 36.682 62.222 40 58.904 40 54.815 L 40 47.407 L 32.593 47.407 C 28.502 47.408 25.186 50.724 25.185 54.815 C 25.185 58.904 28.504 62.222 32.593 62.222 Z\" fill=\"rgb(10,207,131)\"></path><path d=\"M 25.185 40 C 25.185 35.911 28.504 32.592 32.593 32.592 L 40 32.592 L 40 47.407 L 32.593 47.407 C 28.502 47.406 25.186 44.091 25.185 40 Z\" fill=\"rgb(162,89,255)\"></path><path d=\"M 25.185 25.185 C 25.185 21.096 28.504 17.778 32.593 17.778 L 40 17.778 L 40 32.593 L 32.593 32.593 C 28.502 32.592 25.186 29.276 25.185 25.185 Z\" fill=\"rgb(242,78,30)\"></path><path d=\"M 40 17.778 L 47.407 17.778 C 51.496 17.778 54.815 21.096 54.815 25.185 C 54.815 29.274 51.496 32.593 47.407 32.593 L 40 32.593 Z\" fill=\"rgb(255,114,98)\"></path><path d=\"M 54.815 40 C 54.815 44.089 51.496 47.407 47.407 47.407 C 43.317 47.406 40.001 44.09 40 40 C 40 35.911 43.318 32.592 47.407 32.592 C 51.496 32.592 54.815 35.911 54.815 40 Z\" fill=\"rgb(26,188,254)\"></path></svg>',svgContentId:12105385625,withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-7f78ew\",\"data-framer-name\":\"analytics\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"UsHfEiVc_\",opacity:1,radius:500,style:{backgroundColor:\"rgba(0, 0, 0, 0)\",borderBottomLeftRadius:500,borderBottomRightRadius:500,borderTopLeftRadius:500,borderTopRightRadius:500},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 80 80\"><path d=\"M 40 80 C 17.909 80 0 80 0 80 L 0 0 C 0 0 17.909 0 40 0 L 40 0 C 62.091 0 80 0 80 0 L 80 80 C 80 80 62.091 80 40 80 Z\" fill=\"rgb(208, 0, 0)\"></path><path d=\"M 61 60.998 C 61 60.999 60.999 61 60.998 61 L 19.002 61 C 19.001 61 19 60.999 19 60.998 L 19 19.002 C 19 19.001 19.001 19 19.002 19 L 60.999 19 C 61 19 61 19.001 61 19.002 L 61 60.998 Z\" fill=\"rgb(255,255,255)\"></path><path d=\"M 60.3 60.298 C 60.3 60.299 60.299 60.3 60.298 60.3 L 19.702 60.3 C 19.701 60.3 19.7 60.299 19.7 60.298 L 19.7 19.702 C 19.7 19.701 19.701 19.7 19.702 19.7 L 60.299 19.7 C 60.3 19.7 60.3 19.701 60.3 19.702 L 60.3 60.298 Z\" fill=\"rgb(208,0,0)\"></path><path d=\"M 30.783 51.032 C 30.783 51.062 30.801 51.105 30.823 51.127 L 31.518 51.821 C 31.539 51.843 31.582 51.861 31.612 51.861 L 33.99 51.861 C 34.021 51.861 34.064 51.843 34.085 51.821 L 34.78 51.127 C 34.802 51.105 34.82 51.062 34.82 51.032 L 34.82 43.486 C 34.82 43.455 34.838 43.413 34.86 43.392 L 37.881 40.506 C 37.904 40.485 37.936 40.488 37.953 40.514 L 45.586 51.815 C 45.603 51.84 45.643 51.861 45.673 51.861 L 49.042 51.861 C 49.073 51.861 49.109 51.839 49.123 51.812 L 49.735 50.628 C 49.749 50.6 49.746 50.558 49.728 50.532 L 40.8 37.59 C 40.782 37.565 40.786 37.527 40.807 37.505 L 49.02 29.331 C 49.042 29.309 49.059 29.267 49.059 29.236 L 49.059 29.085 C 49.059 29.054 49.049 29.006 49.037 28.978 L 48.563 27.889 C 48.551 27.861 48.516 27.838 48.486 27.838 L 45.155 27.838 C 45.125 27.838 45.082 27.856 45.061 27.877 L 34.86 38.117 C 34.838 38.138 34.82 38.131 34.82 38.1 L 34.82 28.707 C 34.82 28.676 34.803 28.633 34.782 28.61 L 34.101 27.879 C 34.08 27.857 34.038 27.838 34.007 27.838 L 31.612 27.838 C 31.582 27.838 31.54 27.857 31.519 27.879 L 30.821 28.633 C 30.8 28.655 30.783 28.698 30.783 28.729 L 30.783 51.032 Z\" fill=\"rgb(255,255,255)\"></path></svg>',svgContentId:9947206898,withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-gxwjt\",\"data-framer-name\":\"flutter\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"pqViMCQyn\",opacity:1,radius:500,style:{borderBottomLeftRadius:500,borderBottomRightRadius:500,borderTopLeftRadius:500,borderTopRightRadius:500},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 80 80\"><path d=\"M 40 80 C 17.909 80 0 80 0 80 L 0 0 C 0 0 17.909 0 40 0 L 40 0 C 62.091 0 80 0 80 0 L 80 80 C 80 80 62.091 80 40 80 Z\" fill=\"rgb(255,255,255)\"></path><g transform=\"translate(17.454 15.976)\" id=\"ss8917000395_2\"><g><defs><linearGradient id=\"idss8917000395_3g600658593\" x1=\"0\" x2=\"1\" y1=\"0.31812991865483786\" y2=\"0.6818700813451621\"><stop offset=\"0\" stop-color=\"rgb(0,0,0)\" stop-opacity=\"1\"></stop><stop offset=\"1\" stop-color=\"rgba(0,0,0,0)\" stop-opacity=\"0\"></stop></linearGradient></defs><path d=\"M 18.507 42.378 L 24.703 40.338 L 25.319 35.618 Z\" fill=\"url(#idss8917000395_3g600658593)\"></path></g><path d=\"M 10.939 34.924 L 18.395 27.526 L 25.948 34.994 L 18.507 42.378 Z\" fill=\"rgb(0,181,248)\"></path><path d=\"M 18.507 42.378 L 24.172 48 L 39 48 L 25.948 34.994 Z\" fill=\"rgb(0,86,158)\"></path><path d=\"M 24.088 0 L 0 23.903 L 7.456 31.301 L 39 0 Z M 23.92 22.043 L 11.023 34.841 L 18.507 42.378 L 25.949 34.994 L 39 22.043 Z\" fill=\"rgb(71,197,251)\"></path></g></svg>',svgContentId:8917000395,withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-1371vn1\",\"data-framer-name\":\"slack\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"YlBg5JjcF\",opacity:1,radius:500,style:{borderBottomLeftRadius:500,borderBottomRightRadius:500,borderTopLeftRadius:500,borderTopRightRadius:500},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 80 80\"><path d=\"M 40 80 C 17.909 80 0 80 0 80 L 0 0 C 0 0 17.909 0 40 0 L 40 0 C 62.091 0 80 0 80 0 L 80 80 C 80 80 62.091 80 40 80 Z\" fill=\"rgb(255,255,255)\"></path><g transform=\"translate(13.333 13.333)\" id=\"ss12154837128_2\"><path d=\"M 0 0 L 53.333 0 L 53.333 53.333 L 0 53.333 Z\" fill=\"transparent\"></path><path d=\"M 11.217 33.609 C 11.218 35.091 10.63 36.513 9.582 37.561 C 8.533 38.609 7.112 39.197 5.629 39.196 C 4.147 39.197 2.726 38.609 1.678 37.561 C 0.63 36.513 0.041 35.091 0.043 33.609 C 0.041 32.127 0.629 30.705 1.677 29.657 C 2.725 28.608 4.147 28.02 5.629 28.021 L 11.217 28.021 Z M 14.011 33.609 C 14.009 32.127 14.597 30.705 15.646 29.656 C 16.694 28.608 18.116 28.02 19.598 28.021 C 21.08 28.02 22.502 28.608 23.55 29.657 C 24.598 30.705 25.186 32.127 25.185 33.609 L 25.185 47.577 C 25.186 49.059 24.598 50.481 23.55 51.529 C 22.502 52.577 21.08 53.166 19.598 53.164 C 18.116 53.166 16.694 52.578 15.646 51.529 C 14.597 50.481 14.009 49.059 14.011 47.577 Z\" fill=\"rgb(224,30,90)\"></path><path d=\"M 19.598 11.174 C 18.116 11.176 16.694 10.588 15.646 9.54 C 14.598 8.492 14.009 7.07 14.011 5.588 C 14.009 4.105 14.597 2.683 15.646 1.635 C 16.694 0.587 18.116 -0.001 19.598 0 C 21.08 -0.001 22.502 0.587 23.55 1.635 C 24.598 2.683 25.186 4.105 25.185 5.588 L 25.185 11.174 Z M 19.598 14.01 C 21.081 14.009 22.503 14.597 23.551 15.645 C 24.599 16.694 25.187 18.116 25.185 19.598 C 25.186 21.08 24.598 22.502 23.55 23.55 C 22.502 24.598 21.08 25.186 19.598 25.185 L 5.588 25.185 C 4.105 25.186 2.683 24.598 1.635 23.55 C 0.587 22.502 -0.001 21.08 0 19.598 C -0.001 18.116 0.587 16.694 1.635 15.646 C 2.683 14.597 4.105 14.009 5.588 14.011 L 19.598 14.011 Z\" fill=\"rgb(54,197,240)\"></path><path d=\"M 41.989 19.598 C 41.988 18.116 42.576 16.694 43.624 15.646 C 44.673 14.597 46.095 14.009 47.577 14.011 C 49.059 14.009 50.481 14.598 51.529 15.646 C 52.577 16.694 53.165 18.116 53.164 19.598 C 53.165 21.08 52.577 22.502 51.529 23.55 C 50.481 24.598 49.059 25.186 47.577 25.185 L 41.989 25.185 Z M 39.196 19.598 C 39.197 21.08 38.609 22.502 37.561 23.55 C 36.513 24.598 35.091 25.186 33.609 25.185 C 32.127 25.186 30.705 24.598 29.657 23.55 C 28.608 22.502 28.02 21.08 28.021 19.598 L 28.021 5.588 C 28.02 4.105 28.608 2.683 29.656 1.635 C 30.704 0.587 32.126 -0.001 33.608 0 C 35.09 -0.001 36.512 0.587 37.561 1.635 C 38.609 2.683 39.197 4.105 39.196 5.588 Z\" fill=\"rgb(46,182,125)\"></path><path d=\"M 33.609 41.989 C 35.091 41.988 36.513 42.576 37.561 43.625 C 38.609 44.673 39.197 46.095 39.196 47.577 C 39.197 49.059 38.609 50.481 37.561 51.529 C 36.513 52.577 35.091 53.166 33.609 53.164 C 32.127 53.166 30.705 52.578 29.656 51.529 C 28.608 50.481 28.02 49.059 28.021 47.577 L 28.021 41.989 L 33.608 41.989 Z M 33.609 39.196 C 32.127 39.197 30.705 38.609 29.657 37.561 C 28.608 36.513 28.02 35.091 28.021 33.609 C 28.02 32.127 28.608 30.705 29.656 29.657 C 30.704 28.608 32.126 28.02 33.608 28.021 L 47.619 28.021 C 49.101 28.02 50.523 28.608 51.571 29.656 C 52.619 30.705 53.208 32.127 53.206 33.609 C 53.207 35.091 52.619 36.513 51.571 37.561 C 50.523 38.609 49.101 39.197 47.619 39.196 Z\" fill=\"rgb(236,178,46)\"></path></g></svg>',svgContentId:12154837128,withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-bdnlsr\",\"data-framer-name\":\"js\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"dbFS3P8rs\",opacity:1,radius:500,style:{borderBottomLeftRadius:500,borderBottomRightRadius:500,borderTopLeftRadius:500,borderTopRightRadius:500},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 80 80\"><path d=\"M 40 80 C 17.909 80 0 80 0 80 L 0 0 C 0 0 17.909 0 40 0 L 40 0 C 62.091 0 80 0 80 0 L 80 80 C 80 80 62.091 80 40 80 Z\" fill=\"rgb(255,255,255)\"></path><g transform=\"translate(20.75 20.75)\" id=\"ss11801351142_2\"><path d=\"M 0 0 L 38.5 0 L 38.5 38.5 L 0 38.5 Z\" fill=\"rgb(255,202,40)\"></path><path d=\"M 23.375 32.021 L 26.209 30.145 C 26.432 30.843 27.838 32.501 29.615 32.501 C 31.393 32.501 32.218 31.53 32.218 30.887 C 32.218 29.133 30.403 28.515 29.531 28.219 C 29.417 28.182 29.304 28.141 29.193 28.095 C 29.132 28.07 29.071 28.046 29.01 28.022 C 28.04 27.653 24.464 26.287 24.464 22.326 C 24.464 17.964 28.674 17.462 29.626 17.462 C 30.249 17.462 33.242 17.539 34.735 20.342 L 31.985 22.261 C 31.382 21.039 30.381 20.636 29.763 20.636 C 28.24 20.636 27.924 21.752 27.924 22.261 C 27.924 23.687 29.578 24.326 30.976 24.865 C 31.34 25.007 31.688 25.14 31.985 25.282 C 33.507 26.001 35.75 27.18 35.75 30.887 C 35.75 32.743 34.192 35.75 30.271 35.75 C 25.004 35.75 23.607 32.587 23.375 32.021 Z M 9.625 32.394 L 12.58 30.518 C 12.811 31.217 13.71 32.502 15.016 32.502 C 16.321 32.502 16.99 31.162 16.99 30.518 L 16.99 17.875 L 20.622 17.875 L 20.622 30.518 C 20.681 32.263 19.715 35.75 15.445 35.75 C 11.523 35.75 9.89 33.418 9.625 32.395 Z\" fill=\"var(--token-c5c4fdcb-9482-48bb-aedf-353188472aae, rgb(21, 21, 21)) /* {&quot;name&quot;:&quot;text/default&quot;} */\"></path></g></svg>',svgContentId:11801351142,withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-1rcx3z5\",\"data-framer-name\":\".net\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"XONkowPbd\",opacity:1,radius:500,style:{borderBottomLeftRadius:500,borderBottomRightRadius:500,borderTopLeftRadius:500,borderTopRightRadius:500},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 80 80\"><path d=\"M 40 80 C 17.909 80 0 80 0 80 L 0 0 C 0 0 17.909 0 40 0 L 40 0 C 62.091 0 80 0 80 0 L 80 80 C 80 80 62.091 80 40 80 Z\" fill=\"rgb(255,255,255)\"></path><path d=\"M 70 32.053 L 63.83 32.053 L 63.83 50.665 L 60.268 50.665 L 60.268 32.053 L 54.113 32.053 L 54.113 29.002 L 70 29.002 Z M 52.87 50.665 L 40.818 50.665 L 40.818 29.002 L 52.393 29.002 L 52.393 32.053 L 44.38 32.053 L 44.38 38.189 L 51.763 38.189 L 51.763 41.225 L 44.38 41.225 L 44.38 47.632 L 52.87 47.632 Z M 36.1 50.665 L 32.205 50.665 L 21.95 34.742 C 21.693 34.346 21.477 33.926 21.305 33.488 L 21.215 33.488 C 21.295 33.953 21.335 34.944 21.335 36.465 L 21.335 50.665 L 17.893 50.665 L 17.893 29.002 L 22.04 29.002 L 31.953 44.552 C 32.37 45.194 32.64 45.639 32.76 45.88 L 32.82 45.88 C 32.72 45.307 32.67 44.333 32.67 42.965 L 32.67 29 L 36.1 29 Z M 14.343 48.96 C 14.343 49.502 14.114 50.021 13.706 50.403 C 13.299 50.786 12.746 51.001 12.17 51 C 11.594 51 11.042 50.785 10.635 50.402 C 10.228 50.019 9.999 49.499 10 48.958 C 10.001 47.832 10.973 46.921 12.17 46.921 C 12.746 46.92 13.299 47.135 13.706 47.517 C 14.114 47.9 14.343 48.419 14.343 48.96 Z\" fill=\"rgb(33, 108, 184)\"></path></svg>',svgContentId:10566610426,withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-1c8m12p\",\"data-framer-name\":\"aws\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"Ps3F8Hg9U\",opacity:1,radius:500,style:{borderBottomLeftRadius:500,borderBottomRightRadius:500,borderTopLeftRadius:500,borderTopRightRadius:500},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 80 80\"><path d=\"M 40 80 C 17.909 80 0 80 0 80 L 0 0 C 0 0 17.909 0 40 0 L 40 0 C 62.091 0 80 0 80 0 L 80 80 C 80 80 62.091 80 40 80 Z\" fill=\"rgb(255,255,255)\"></path><g transform=\"translate(13.5 24.499)\" id=\"ss9024568971_2\"><g transform=\"translate(0 19.951)\" id=\"ss9024568971_3\"><path d=\"M 47.916 5.429 C 42.119 9.752 33.692 12.049 26.447 12.049 C 16.294 12.049 7.145 8.259 0.235 1.958 C -0.312 1.458 0.182 0.781 0.831 1.175 C 8.308 5.552 17.527 8.206 27.067 8.206 C 33.496 8.206 40.565 6.852 47.071 4.075 C 48.042 3.632 48.87 4.715 47.916 5.429 Z\" fill=\"rgb(255,153,0)\"></path><path d=\"M 50.331 2.652 C 49.592 1.695 45.431 2.192 43.547 2.422 C 42.984 2.495 42.894 1.995 43.404 1.622 C 46.717 -0.729 52.166 -0.052 52.799 0.731 C 53.435 1.532 52.623 7.032 49.519 9.666 C 49.045 10.076 48.588 9.866 48.797 9.332 C 49.503 7.565 51.073 3.598 50.331 2.655 Z\" fill=\"rgb(255,153,0)\"></path></g><path d=\"M 14.939 11.625 C 14.939 12.281 15.006 12.815 15.132 13.208 C 15.271 13.598 15.45 14.025 15.695 14.488 C 15.773 14.611 15.815 14.753 15.817 14.898 C 15.817 15.075 15.711 15.255 15.486 15.432 L 14.373 16.178 C 14.239 16.275 14.08 16.331 13.916 16.338 C 13.737 16.338 13.561 16.252 13.386 16.092 C 13.148 15.834 12.935 15.554 12.75 15.255 C 12.553 14.913 12.37 14.563 12.203 14.205 C 10.829 15.842 9.103 16.662 7.022 16.662 C 5.542 16.662 4.359 16.232 3.498 15.378 C 2.633 14.525 2.193 13.385 2.193 11.961 C 2.193 10.448 2.723 9.221 3.796 8.294 C 4.873 7.367 6.3 6.907 8.116 6.907 C 8.712 6.907 9.331 6.961 9.984 7.047 C 10.636 7.137 11.309 7.281 12.011 7.441 L 12.011 6.141 C 12.011 4.787 11.73 3.844 11.183 3.294 C 10.62 2.74 9.666 2.474 8.308 2.474 C 7.692 2.474 7.059 2.547 6.406 2.707 C 5.758 2.862 5.121 3.064 4.502 3.31 C 4.301 3.402 4.096 3.479 3.885 3.544 C 3.794 3.574 3.7 3.592 3.604 3.597 C 3.355 3.597 3.233 3.417 3.233 3.044 L 3.233 2.17 C 3.233 1.887 3.266 1.67 3.355 1.55 C 3.489 1.387 3.659 1.257 3.852 1.173 C 4.465 0.853 5.207 0.587 6.072 0.373 C 6.933 0.14 7.851 0.037 8.821 0.037 C 10.918 0.037 12.452 0.517 13.439 1.477 C 14.409 2.437 14.903 3.897 14.903 5.857 L 14.903 11.625 L 14.936 11.625 Z M 7.781 14.328 C 8.361 14.328 8.96 14.221 9.596 14.008 C 10.229 13.795 10.795 13.401 11.269 12.868 C 11.553 12.541 11.758 12.152 11.869 11.731 C 11.975 11.301 12.048 10.788 12.048 10.181 L 12.048 9.434 C 11.513 9.304 10.971 9.204 10.424 9.134 C 9.875 9.063 9.322 9.026 8.768 9.024 C 7.586 9.024 6.721 9.258 6.141 9.738 C 5.558 10.218 5.28 10.894 5.28 11.785 C 5.28 12.618 5.489 13.241 5.929 13.671 C 6.353 14.115 6.969 14.328 7.781 14.328 Z M 21.936 16.252 C 21.618 16.252 21.406 16.198 21.266 16.072 C 21.124 15.965 21.001 15.718 20.895 15.378 L 16.755 1.62 C 16.673 1.39 16.619 1.15 16.592 0.907 C 16.592 0.623 16.735 0.463 17.016 0.463 L 18.746 0.463 C 19.077 0.463 19.309 0.517 19.431 0.64 C 19.574 0.747 19.68 0.997 19.786 1.333 L 22.747 13.118 L 25.497 1.333 C 25.583 0.98 25.689 0.747 25.828 0.64 C 26.04 0.509 26.288 0.447 26.537 0.463 L 27.944 0.463 C 28.282 0.463 28.508 0.517 28.65 0.64 C 28.793 0.747 28.915 0.997 28.985 1.333 L 31.771 13.261 L 34.818 1.333 C 34.875 1.075 34.997 0.836 35.172 0.64 C 35.378 0.509 35.619 0.447 35.862 0.463 L 37.501 0.463 C 37.783 0.463 37.942 0.607 37.942 0.907 C 37.942 0.997 37.922 1.087 37.909 1.193 C 37.88 1.345 37.838 1.493 37.783 1.637 L 33.533 15.395 C 33.427 15.752 33.304 15.985 33.165 16.092 C 32.965 16.22 32.73 16.282 32.493 16.268 L 30.979 16.268 C 30.644 16.268 30.416 16.215 30.273 16.092 C 30.131 15.965 30.008 15.735 29.939 15.378 L 27.206 3.9 L 24.49 15.365 C 24.403 15.722 24.297 15.952 24.158 16.075 C 24.016 16.202 23.767 16.255 23.453 16.255 L 21.936 16.255 Z M 44.587 16.732 C 43.672 16.733 42.76 16.626 41.87 16.412 C 40.989 16.198 40.304 15.965 39.843 15.698 C 39.562 15.538 39.37 15.362 39.297 15.198 C 39.229 15.041 39.194 14.872 39.194 14.702 L 39.194 13.795 C 39.194 13.421 39.333 13.241 39.598 13.241 C 39.706 13.242 39.814 13.26 39.916 13.295 C 40.022 13.331 40.181 13.401 40.357 13.475 C 40.953 13.741 41.609 13.955 42.294 14.098 C 43 14.238 43.686 14.311 44.391 14.311 C 45.504 14.311 46.366 14.115 46.965 13.725 C 47.552 13.368 47.902 12.721 47.883 12.031 C 47.895 11.569 47.723 11.122 47.406 10.788 C 47.091 10.448 46.492 10.144 45.627 9.861 L 43.07 9.061 C 41.784 8.651 40.83 8.044 40.251 7.244 C 39.683 6.505 39.373 5.598 39.37 4.664 C 39.37 3.917 39.529 3.257 39.843 2.687 C 40.161 2.12 40.585 1.62 41.115 1.227 C 41.665 0.809 42.285 0.496 42.947 0.303 C 43.653 0.09 44.391 0 45.166 0 C 45.557 0 45.961 0.017 46.349 0.07 C 47.08 0.16 47.8 0.322 48.499 0.553 C 48.817 0.66 49.062 0.767 49.241 0.873 C 49.449 0.979 49.63 1.13 49.771 1.317 C 49.884 1.49 49.939 1.696 49.927 1.904 L 49.927 2.74 C 49.927 3.114 49.787 3.31 49.522 3.31 C 49.288 3.283 49.061 3.211 48.853 3.097 C 47.788 2.622 46.633 2.385 45.468 2.404 C 44.464 2.404 43.669 2.564 43.123 2.904 C 42.576 3.237 42.294 3.757 42.294 4.487 C 42.294 4.984 42.47 5.411 42.825 5.751 C 43.176 6.087 43.828 6.424 44.762 6.727 L 47.267 7.527 C 48.535 7.937 49.453 8.508 50 9.238 C 50.546 9.968 50.808 10.804 50.808 11.731 C 50.808 12.498 50.652 13.188 50.351 13.795 C 50.039 14.404 49.6 14.938 49.065 15.362 C 48.519 15.805 47.866 16.128 47.108 16.358 C 46.291 16.612 45.441 16.738 44.587 16.732 Z\" fill=\"rgb(37,47,62)\"></path></g></svg>',svgContentId:9024568971,withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-1kq9r4t\",\"data-framer-name\":\"angular\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"gqkur0hET\",opacity:1,radius:500,style:{borderBottomLeftRadius:500,borderBottomRightRadius:500,borderTopLeftRadius:500,borderTopRightRadius:500},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 80 80\"><path d=\"M 40 80 C 17.909 80 0 80 0 80 L 0 0 C 0 0 17.909 0 40 0 L 40 0 C 62.091 0 80 0 80 0 L 80 80 C 80 80 62.091 80 40 80 Z\" fill=\"rgb(255,255,255)\"></path><g transform=\"translate(20 18.5)\" id=\"ss9132276062_2\"><g id=\"ss9132276062_3\"><path d=\"M 20 0 L 0 7.679 L 3.077 33.786 L 20 43 L 36.923 33.786 L 40 7.679 Z\" fill=\"rgb(221,0,49)\"></path><path d=\"M 20 0 L 20 43 L 36.923 33.786 L 40 7.679 Z\" fill=\"rgb(195,0,47)\"></path><path d=\"M 20 3.635 L 7.497 31.692 L 12.158 31.692 L 14.672 25.414 L 25.285 25.414 L 27.798 31.692 L 32.46 31.692 L 19.998 3.635 Z M 23.652 21.544 L 16.348 21.544 L 20 12.751 Z\" fill=\"rgb(255,255,255)\"></path></g></g></svg>',svgContentId:9132276062,withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-bn6q6b\",\"data-framer-name\":\"react\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"BxUeIsJEE\",opacity:1,radius:500,style:{borderBottomLeftRadius:500,borderBottomRightRadius:500,borderTopLeftRadius:500,borderTopRightRadius:500},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 80 80\"><g id=\"ss12270909153_1\"><path d=\"M 0 0 L 80 0 L 80 80 L 0 80 Z\" fill=\"transparent\"></path><path d=\"M 40 80.001 C 62.092 80.001 80.001 62.092 80.001 40.001 C 80.001 17.909 62.092 0 40.001 0 C 17.909 0 0 17.909 0 40 C 0 62.092 17.909 80.001 40 80.001 Z\" fill=\"rgb(54, 193, 247)\"></path></g><g transform=\"translate(12.375 16.125)\" id=\"ss12270909153_4\"><path d=\"M 42.96 14.78 C 43.986 10.738 45.274 3.247 40.73 0.707 C 36.208 -1.822 30.322 3.024 27.215 5.933 C 24.115 3.053 18.065 -1.771 13.526 0.776 C 9.005 3.314 10.399 10.682 11.447 14.748 C 7.229 15.908 0 18.409 0 23.521 C 0 28.616 7.222 31.339 11.414 32.499 C 10.363 36.587 9.038 43.85 13.564 46.382 C 18.121 48.929 24.153 44.218 27.289 41.278 C 30.418 44.203 36.247 48.945 40.77 46.407 C 45.309 43.859 44.127 36.467 43.077 32.378 C 47.141 31.216 54.379 28.553 54.379 23.521 C 54.379 18.458 47.111 15.937 42.96 14.78 Z M 42.445 30.212 C 41.683 27.924 40.763 25.692 39.691 23.532 C 40.723 21.401 41.607 19.202 42.338 16.95 C 45.381 17.806 52.055 19.76 52.055 23.521 C 52.055 27.317 45.651 29.291 42.445 30.212 Z M 39.606 44.457 C 36.231 46.351 31.217 41.818 28.908 39.663 C 30.552 37.897 32.075 36.022 33.465 34.051 C 35.942 33.848 38.403 33.48 40.832 32.95 C 41.569 35.842 42.996 42.554 39.606 44.457 Z M 14.726 44.43 C 11.349 42.543 12.893 36.063 13.667 33.05 C 16.084 33.554 18.532 33.898 20.994 34.08 C 22.426 36.044 23.986 37.912 25.663 39.672 C 23.7 41.512 18.117 46.326 14.726 44.43 Z M 2.32 23.521 C 2.32 19.711 8.956 17.77 12.069 16.918 C 12.801 19.194 13.686 21.418 14.719 23.575 C 13.673 25.764 12.777 28.02 12.036 30.329 C 9.069 29.506 2.32 27.333 2.32 23.521 Z M 14.69 2.726 C 18.079 0.823 23.336 5.456 25.587 7.541 C 23.921 9.288 22.373 11.145 20.954 13.098 C 18.398 13.329 15.949 13.697 13.698 14.193 C 12.853 10.912 11.304 4.626 14.69 2.726 Z M 35.127 15.547 C 36.862 15.759 38.526 16.042 40.087 16.388 C 39.584 17.93 39.003 19.445 38.346 20.927 C 37.349 19.09 36.275 17.295 35.127 15.547 Z M 27.215 9.15 C 28.344 10.344 29.413 11.594 30.416 12.895 C 28.275 12.798 26.13 12.798 23.989 12.895 C 25.002 11.595 26.079 10.345 27.215 9.15 Z M 16.055 20.925 C 15.402 19.434 14.825 17.912 14.325 16.363 C 15.955 16.014 17.6 15.74 19.256 15.544 C 18.104 17.286 17.036 19.083 16.055 20.927 Z M 19.305 31.66 C 17.623 31.483 15.951 31.222 14.294 30.879 C 14.773 29.374 15.364 27.812 16.056 26.224 C 17.051 28.087 18.135 29.901 19.305 31.66 Z M 27.28 38.049 C 26.128 36.839 25.036 35.572 24.008 34.254 C 26.162 34.335 28.319 34.335 30.472 34.243 C 29.474 35.566 28.409 36.836 27.28 38.049 Z M 38.368 26.142 C 39.093 27.748 39.708 29.303 40.194 30.781 C 38.518 31.145 36.825 31.425 35.122 31.618 C 36.281 29.841 37.363 28.014 38.366 26.144 Z M 32.169 31.892 C 28.872 32.115 25.564 32.121 22.267 31.91 C 20.396 29.263 18.732 26.477 17.289 23.575 C 18.724 20.68 20.378 17.898 22.237 15.255 C 25.538 15.013 28.851 15.013 32.151 15.255 C 33.992 17.902 35.651 20.671 37.116 23.543 C 35.659 26.435 34.006 29.225 32.169 31.892 Z M 39.57 2.659 C 42.96 4.555 41.452 11.288 40.712 14.217 C 38.314 13.69 35.885 13.317 33.44 13.102 C 32.035 11.146 30.499 9.287 28.843 7.539 C 31.123 5.409 36.213 0.781 39.57 2.659 Z\" fill=\"rgb(255, 255, 255)\"></path><path d=\"M 32.046 23.521 C 32.046 20.92 29.871 18.812 27.19 18.812 C 24.507 18.812 22.334 20.92 22.334 23.521 C 22.334 26.12 24.509 28.228 27.19 28.228 C 29.872 28.228 32.046 26.12 32.046 23.521 Z\" fill=\"rgb(255, 255, 255)\"></path></g></svg>',svgContentId:12270909153,withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-kirrd0\",\"data-framer-name\":\"framer\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"G1x1XaFtC\",opacity:1,radius:500,style:{borderBottomLeftRadius:500,borderBottomRightRadius:500,borderTopLeftRadius:500,borderTopRightRadius:500},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 80 80\"><path d=\"M 40 80 C 17.909 80 0 80 0 80 L 0 0 C 0 0 17.909 0 40 0 L 40 0 C 62.091 0 80 0 80 0 L 80 80 C 80 80 62.091 80 40 80 Z\" fill=\"rgb(51,51,51)\"></path><path d=\"M 79.673 45.079 C 82.472 23.163 66.995 3.127 45.119 0.327 C 23.243 -2.473 3.127 13.005 0.327 34.881 C -2.473 56.757 13.005 76.833 34.881 79.673 C 56.797 82.473 76.833 66.995 79.673 45.079 Z\" fill=\"rgb(255,108,55)\"></path><path d=\"M 54.437 25.682 L 37.56 42.56 L 32.801 37.8 C 49.398 21.203 51.038 22.643 54.437 25.682 Z\" fill=\"rgb(255,255,255)\"></path><path d=\"M 37.56 42.959 C 37.44 42.959 37.36 42.919 37.281 42.839 L 32.481 38.08 C 32.405 38.007 32.361 37.906 32.361 37.8 C 32.361 37.694 32.405 37.593 32.481 37.52 C 49.358 20.643 51.118 22.243 54.677 25.442 C 54.757 25.522 54.797 25.602 54.797 25.722 C 54.797 25.842 54.757 25.922 54.677 26.002 L 37.8 42.839 C 37.76 42.919 37.64 42.959 37.56 42.959 Z M 33.361 37.8 L 37.56 42 L 53.837 25.722 C 50.878 23.083 48.878 22.283 33.361 37.801 Z\" fill=\"rgb(255,108,55)\"></path><path d=\"M 42.4 47.399 L 37.8 42.799 L 54.677 25.922 C 59.196 30.482 52.438 37.88 42.399 47.399 Z\" fill=\"rgb(255,255,255)\"></path><path d=\"M 42.4 47.799 C 42.28 47.799 42.2 47.759 42.12 47.679 L 37.52 43.079 C 37.44 42.999 37.44 42.919 37.44 42.799 C 37.44 42.679 37.48 42.599 37.56 42.52 L 54.437 25.642 C 54.51 25.566 54.612 25.523 54.717 25.523 C 54.823 25.523 54.924 25.566 54.997 25.642 C 56.03 26.599 56.599 27.955 56.557 29.362 C 56.477 33.801 51.438 39.44 42.719 47.679 C 42.6 47.759 42.48 47.799 42.4 47.799 Z M 38.36 42.799 C 40.92 45.399 42 46.439 42.4 46.839 C 49.118 40.44 55.637 33.881 55.677 29.362 C 55.717 28.322 55.317 27.282 54.637 26.482 Z\" fill=\"rgb(255,108,55)\"></path><path d=\"M 32.881 37.92 L 36.281 41.32 C 36.361 41.4 36.361 41.48 36.281 41.56 C 36.241 41.6 36.241 41.6 36.201 41.6 L 29.162 43.119 C 28.802 43.159 28.482 42.919 28.402 42.56 C 28.362 42.36 28.442 42.16 28.562 42.04 L 32.641 37.96 C 32.721 37.88 32.841 37.84 32.881 37.92 Z\" fill=\"rgb(255,255,255)\"></path><path d=\"M 29.042 43.519 C 28.442 43.519 28.002 43.039 28.002 42.44 C 28.002 42.16 28.122 41.88 28.322 41.68 L 32.401 37.6 C 32.641 37.4 32.961 37.4 33.201 37.6 L 36.601 41 C 36.841 41.2 36.841 41.56 36.601 41.8 C 36.521 41.88 36.441 41.92 36.321 41.96 L 29.282 43.479 C 29.202 43.479 29.122 43.519 29.042 43.519 Z M 32.761 38.36 L 28.842 42.28 C 28.762 42.36 28.722 42.48 28.802 42.6 C 28.842 42.719 28.962 42.759 29.082 42.719 L 35.681 41.28 L 32.761 38.36 Z\" fill=\"rgb(255,108,55)\"></path><path d=\"M 63.356 16.324 C 60.796 13.845 56.677 13.925 54.197 16.524 C 51.718 19.124 51.798 23.203 54.397 25.682 C 56.507 27.721 59.726 28.083 62.236 26.562 L 57.677 22.003 Z\" fill=\"rgb(255,255,255)\"></path><path d=\"M 58.877 27.882 C 55.077 27.882 51.998 24.803 51.998 21.003 C 51.998 17.204 55.077 14.125 58.877 14.125 C 60.636 14.125 62.356 14.805 63.636 16.044 C 63.716 16.124 63.756 16.204 63.756 16.324 C 63.756 16.444 63.716 16.524 63.636 16.604 L 58.237 22.003 L 62.476 26.242 C 62.636 26.402 62.636 26.642 62.476 26.802 L 62.396 26.882 C 61.356 27.522 60.116 27.882 58.877 27.882 Z M 58.877 14.964 C 55.517 14.964 52.798 17.684 52.838 21.043 C 52.838 24.403 55.557 27.122 58.917 27.082 C 59.837 27.082 60.756 26.882 61.596 26.442 L 57.397 22.283 C 57.317 22.203 57.277 22.123 57.277 22.003 C 57.277 21.883 57.317 21.803 57.397 21.723 L 62.756 16.364 C 61.676 15.444 60.316 14.964 58.877 14.964 Z\" fill=\"rgb(255,108,55)\"></path><path d=\"M 63.476 16.444 L 63.396 16.364 L 57.677 22.003 L 62.196 26.522 C 62.636 26.242 63.076 25.922 63.436 25.562 C 64.659 24.364 65.353 22.725 65.36 21.012 C 65.368 19.299 64.689 17.654 63.476 16.444 Z\" fill=\"rgb(255,255,255)\"></path><path d=\"M 62.236 26.962 C 62.116 26.962 62.036 26.922 61.956 26.842 L 57.397 22.283 C 57.317 22.203 57.277 22.123 57.277 22.003 C 57.277 21.883 57.317 21.803 57.397 21.723 L 63.076 16.044 C 63.149 15.968 63.25 15.924 63.356 15.924 C 63.462 15.924 63.563 15.968 63.636 16.044 L 63.756 16.124 C 66.435 18.804 66.435 23.123 63.796 25.842 C 63.396 26.242 62.956 26.602 62.476 26.882 C 62.356 26.922 62.276 26.962 62.236 26.962 Z M 58.237 22.003 L 62.276 26.042 C 62.596 25.842 62.916 25.562 63.156 25.322 C 65.435 23.043 65.555 19.324 63.356 16.924 Z\" fill=\"rgb(255,108,55)\"></path><path d=\"M 55.117 26.402 C 54.156 25.443 52.599 25.443 51.638 26.402 L 36.561 41.48 L 39.08 43.999 L 55.037 30.002 C 56.077 29.122 56.157 27.562 55.277 26.522 C 55.197 26.482 55.157 26.442 55.117 26.402 Z\" fill=\"rgb(255,255,255)\"></path><path d=\"M 39.04 44.399 C 38.92 44.399 38.84 44.359 38.76 44.279 L 36.241 41.76 C 36.164 41.687 36.121 41.586 36.121 41.48 C 36.121 41.374 36.164 41.273 36.241 41.2 L 51.318 26.122 C 51.852 25.585 52.579 25.283 53.337 25.283 C 54.096 25.283 54.823 25.585 55.357 26.122 C 55.895 26.657 56.197 27.384 56.197 28.142 C 56.197 28.9 55.895 29.627 55.357 30.162 L 55.237 30.282 L 39.28 44.279 C 39.24 44.359 39.16 44.399 39.04 44.399 Z M 37.121 41.48 L 39.08 43.439 L 54.757 29.682 C 55.637 28.962 55.717 27.642 54.997 26.762 C 54.277 25.882 52.958 25.802 52.078 26.522 C 52.038 26.562 51.998 26.602 51.918 26.642 L 37.121 41.48 Z\" fill=\"rgb(255,108,55)\"></path><path d=\"M 25.003 58.637 C 24.843 58.717 24.763 58.877 24.803 59.037 L 25.482 61.916 C 25.642 62.316 25.402 62.796 24.963 62.916 C 24.643 63.036 24.283 62.916 24.083 62.676 L 19.684 58.317 L 34.041 43.959 L 39 44.039 L 42.36 47.399 C 41.56 48.078 36.721 52.758 25.003 58.637 Z\" fill=\"rgb(255,255,255)\"></path><path d=\"M 24.683 63.316 C 24.363 63.316 24.043 63.196 23.843 62.956 L 19.483 58.597 C 19.404 58.517 19.364 58.437 19.364 58.317 C 19.364 58.197 19.404 58.117 19.484 58.037 L 33.841 43.679 C 33.921 43.599 34.041 43.559 34.121 43.559 L 39.08 43.639 C 39.2 43.639 39.28 43.679 39.36 43.759 L 42.719 47.119 C 42.799 47.199 42.839 47.319 42.839 47.439 C 42.839 47.559 42.799 47.639 42.679 47.719 L 42.4 47.958 C 38.16 51.678 32.401 55.397 25.243 58.957 L 25.922 61.796 C 26.042 62.316 25.802 62.876 25.322 63.156 C 25.083 63.276 24.883 63.316 24.683 63.316 Z M 20.283 58.317 L 24.403 62.396 C 24.523 62.596 24.763 62.676 24.963 62.556 C 25.163 62.436 25.243 62.196 25.123 61.996 L 24.443 59.117 C 24.363 58.757 24.523 58.437 24.843 58.277 C 31.922 54.717 37.64 51.038 41.84 47.398 L 38.88 44.439 L 34.281 44.359 Z\" fill=\"rgb(255,108,55)\"></path><path d=\"M 16.284 61.756 L 19.724 58.317 L 24.842 63.436 L 16.684 62.876 C 16.324 62.836 16.084 62.516 16.124 62.156 C 16.124 61.996 16.164 61.836 16.284 61.756 Z\" fill=\"rgb(255,255,255)\"></path><path d=\"M 24.843 63.796 L 16.644 63.236 C 16.044 63.196 15.644 62.676 15.684 62.076 C 15.724 61.836 15.804 61.596 16.004 61.436 L 19.444 57.997 C 19.517 57.92 19.618 57.877 19.724 57.877 C 19.83 57.877 19.931 57.92 20.004 57.997 L 25.122 63.116 C 25.243 63.236 25.282 63.396 25.203 63.556 C 25.123 63.716 25.003 63.796 24.843 63.796 Z M 19.724 58.877 L 16.564 62.036 C 16.444 62.116 16.444 62.316 16.564 62.396 C 16.604 62.436 16.644 62.476 16.724 62.476 L 23.803 62.956 L 19.724 58.877 Z M 32.641 45.799 C 32.401 45.799 32.241 45.599 32.241 45.399 C 32.241 45.279 32.281 45.199 32.361 45.119 L 36.241 41.24 C 36.314 41.163 36.415 41.12 36.521 41.12 C 36.626 41.12 36.728 41.163 36.801 41.24 L 39.32 43.759 C 39.44 43.879 39.48 43.999 39.44 44.159 C 39.4 44.279 39.28 44.399 39.12 44.439 L 32.721 45.799 Z M 36.521 42.08 L 33.881 44.719 L 38.2 43.799 Z\" fill=\"rgb(255,108,55)\"></path><path d=\"M 39 44.039 L 34.601 44.999 C 34.281 45.079 33.961 44.879 33.881 44.559 C 33.841 44.359 33.881 44.159 34.041 43.999 L 36.481 41.56 L 39 44.039 Z\" fill=\"rgb(255,255,255)\"></path><path d=\"M 34.521 45.399 C 34.255 45.402 33.999 45.297 33.811 45.109 C 33.623 44.921 33.518 44.665 33.521 44.399 C 33.521 44.119 33.641 43.879 33.801 43.679 L 36.241 41.24 C 36.314 41.163 36.415 41.12 36.521 41.12 C 36.626 41.12 36.728 41.163 36.801 41.24 L 39.32 43.759 C 39.44 43.879 39.48 43.999 39.44 44.159 C 39.4 44.279 39.28 44.399 39.12 44.439 L 34.721 45.399 Z M 36.521 42.08 L 34.361 44.239 C 34.281 44.319 34.281 44.399 34.321 44.479 C 34.361 44.559 34.441 44.599 34.561 44.599 L 38.24 43.799 Z M 63.516 20.283 C 63.436 20.044 63.156 19.924 62.916 20.004 C 62.676 20.083 62.556 20.363 62.636 20.604 C 62.636 20.643 62.676 20.683 62.676 20.723 C 62.916 21.203 62.836 21.803 62.516 22.243 C 62.356 22.443 62.396 22.723 62.556 22.883 C 62.756 23.043 63.036 23.003 63.196 22.803 C 63.796 22.043 63.916 21.083 63.516 20.283 Z\" fill=\"rgb(255,108,55)\"></path></svg>',svgContentId:10586915072,withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-qte6dz\",\"data-framer-name\":\"premiere\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"E6fDweLiV\",opacity:1,radius:500,style:{borderBottomLeftRadius:500,borderBottomRightRadius:500,borderTopLeftRadius:500,borderTopRightRadius:500},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 80 80\"><path d=\"M 40 80 C 17.909 80 0 80 0 80 L 0 0 C 0 0 17.909 0 40 0 L 40 0 C 62.091 0 80 0 80 0 L 80 80 C 80 80 62.091 80 40 80 Z\" fill=\"rgb(0,0,91)\"></path><path d=\"M 17.037 5.333 L 62.963 5.333 C 69.926 5.333 75.556 10.963 75.556 17.926 L 75.556 62.074 C 75.556 69.037 69.926 74.667 62.963 74.667 L 17.037 74.667 C 10.074 74.667 4.444 69.037 4.444 62.074 L 4.444 17.926 C 4.444 10.963 10.074 5.333 17.037 5.333 Z\" fill=\"rgb(0,0,91)\"></path><path d=\"M 21.333 53.926 L 21.333 23.407 C 21.333 23.2 21.422 23.082 21.629 23.082 C 22.133 23.082 22.607 23.082 23.289 23.052 C 24 23.022 24.74 23.022 25.54 22.993 C 26.34 22.963 27.2 22.963 28.118 22.933 C 29.037 22.904 29.926 22.904 30.815 22.904 C 33.244 22.904 35.26 23.2 36.918 23.822 C 38.4 24.326 39.763 25.156 40.889 26.252 C 41.844 27.209 42.581 28.361 43.052 29.629 C 43.496 30.874 43.733 32.148 43.733 33.482 C 43.733 36.029 43.14 38.133 41.956 39.793 C 40.771 41.452 39.111 42.696 37.185 43.407 C 35.171 44.148 32.948 44.415 30.518 44.415 C 29.807 44.415 29.333 44.415 29.037 44.385 C 28.74 44.356 28.326 44.356 27.763 44.356 L 27.763 53.867 C 27.776 53.965 27.749 54.065 27.687 54.143 C 27.626 54.221 27.536 54.271 27.437 54.282 L 21.689 54.282 C 21.452 54.282 21.333 54.163 21.333 53.896 Z M 27.793 28.829 L 27.793 38.785 C 28.207 38.815 28.593 38.844 28.948 38.844 L 30.518 38.844 C 31.674 38.844 32.829 38.667 33.926 38.311 C 34.874 38.044 35.704 37.482 36.356 36.74 C 36.978 36 37.274 34.993 37.274 33.689 C 37.302 32.763 37.066 31.848 36.593 31.052 C 36.099 30.282 35.372 29.69 34.518 29.363 C 33.422 28.918 32.237 28.74 31.022 28.771 C 30.252 28.771 29.571 28.771 29.007 28.8 C 28.415 28.771 28 28.8 27.793 28.829 Z M 48 30.578 L 53.185 30.578 C 53.482 30.578 53.718 30.785 53.807 31.052 C 53.896 31.289 53.956 31.526 53.985 31.793 C 54.044 32.089 54.104 32.415 54.133 32.711 C 54.163 33.037 54.193 33.393 54.193 33.778 C 55.082 32.74 56.148 31.882 57.363 31.229 C 58.726 30.46 60.296 30.074 61.867 30.074 C 62.074 30.044 62.252 30.193 62.282 30.4 L 62.282 36.296 C 62.282 36.533 62.133 36.622 61.807 36.622 C 60.74 36.593 59.644 36.682 58.607 36.918 C 57.748 37.096 56.918 37.363 56.118 37.718 C 55.556 37.985 55.022 38.34 54.607 38.815 L 54.607 53.926 C 54.607 54.222 54.489 54.34 54.222 54.34 L 48.385 54.34 C 48.274 54.359 48.161 54.331 48.072 54.264 C 47.982 54.197 47.924 54.096 47.911 53.985 L 47.911 37.452 C 47.911 36.74 47.911 36 47.882 35.229 C 47.852 34.46 47.852 33.689 47.822 32.918 C 47.822 32.237 47.763 31.585 47.704 30.904 C 47.688 30.833 47.701 30.759 47.74 30.698 C 47.779 30.637 47.84 30.593 47.911 30.578 C 47.911 30.548 47.971 30.548 48 30.578 Z\" fill=\"rgb(153,153,255)\"></path></svg>',svgContentId:9696733126,withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-19qh79x\",\"data-framer-name\":\"photoshop\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"BRVSvj0MY\",opacity:1,radius:500,style:{borderBottomLeftRadius:500,borderBottomRightRadius:500,borderTopLeftRadius:500,borderTopRightRadius:500},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 80 80\"><path d=\"M 40 80 C 17.909 80 0 80 0 80 L 0 0 C 0 0 17.909 0 40 0 L 40 0 C 62.091 0 80 0 80 0 L 80 80 C 80 80 62.091 80 40 80 Z\" fill=\"rgb(0,30,54)\"></path><path d=\"M 17.037 5.333 L 62.963 5.333 C 69.926 5.333 75.556 10.963 75.556 17.925 L 75.556 62.074 C 75.556 69.036 69.926 74.667 62.963 74.667 L 17.037 74.667 C 10.074 74.667 4.444 69.036 4.444 62.074 L 4.444 17.925 C 4.444 10.963 10.074 5.333 17.037 5.333 Z\" fill=\"rgb(0,30,54)\"></path><path d=\"M 20.444 53.956 L 20.444 23.467 C 20.444 23.26 20.533 23.141 20.74 23.141 C 21.244 23.141 21.718 23.141 22.4 23.111 C 23.111 23.082 23.852 23.082 24.652 23.052 C 25.452 23.022 26.311 23.022 27.229 22.993 C 28.148 22.963 29.037 22.963 29.926 22.963 C 32.356 22.963 34.371 23.26 36.029 23.882 C 37.517 24.387 38.873 25.217 40 26.311 C 40.955 27.269 41.692 28.421 42.163 29.689 C 42.607 30.933 42.844 32.208 42.844 33.541 C 42.844 36.089 42.252 38.193 41.067 39.852 C 39.882 41.511 38.222 42.756 36.296 43.467 C 34.282 44.208 32.06 44.474 29.629 44.474 C 28.918 44.474 28.444 44.474 28.148 44.444 C 27.852 44.415 27.437 44.415 26.874 44.415 L 26.874 53.926 C 26.904 54.133 26.756 54.311 26.548 54.34 L 20.8 54.34 C 20.563 54.34 20.444 54.222 20.444 53.956 Z M 26.904 28.86 L 26.904 38.815 C 27.318 38.844 27.704 38.874 28.06 38.874 L 29.629 38.874 C 30.785 38.874 31.94 38.696 33.037 38.34 C 33.985 38.074 34.815 37.511 35.467 36.771 C 36.089 36.029 36.385 35.022 36.385 33.719 C 36.413 32.793 36.177 31.878 35.704 31.082 C 35.21 30.312 34.483 29.721 33.629 29.393 C 32.533 28.948 31.348 28.771 30.133 28.8 C 29.363 28.8 28.682 28.8 28.118 28.83 C 27.526 28.8 27.111 28.83 26.904 28.86 Z M 61.333 37.007 C 60.444 36.533 59.496 36.207 58.489 36 C 57.393 35.763 56.296 35.615 55.171 35.615 C 54.578 35.585 53.956 35.674 53.393 35.822 C 53.007 35.911 52.682 36.119 52.474 36.415 C 52.326 36.652 52.237 36.948 52.237 37.215 C 52.237 37.482 52.356 37.748 52.533 37.986 C 52.8 38.311 53.156 38.578 53.54 38.786 C 54.222 39.141 54.933 39.467 55.644 39.764 C 57.244 40.297 58.785 41.037 60.207 41.926 C 61.185 42.548 61.985 43.378 62.548 44.386 C 63.022 45.333 63.26 46.371 63.229 47.437 C 63.253 48.838 62.85 50.212 62.074 51.378 C 61.247 52.561 60.094 53.477 58.756 54.015 C 57.304 54.637 55.526 54.963 53.393 54.963 C 52.029 54.963 50.696 54.844 49.363 54.578 C 48.318 54.397 47.301 54.079 46.34 53.63 C 46.133 53.511 45.985 53.304 46.015 53.067 L 46.015 47.911 C 46.015 47.822 46.044 47.704 46.133 47.644 C 46.222 47.585 46.311 47.615 46.4 47.674 C 47.556 48.356 48.771 48.829 50.074 49.126 C 51.2 49.422 52.385 49.571 53.571 49.571 C 54.696 49.571 55.496 49.422 56.029 49.156 C 56.504 48.948 56.829 48.444 56.829 47.911 C 56.829 47.497 56.593 47.111 56.118 46.726 C 55.644 46.34 54.667 45.896 53.215 45.333 C 51.704 44.8 50.311 44.089 49.007 43.2 C 48.079 42.538 47.31 41.678 46.756 40.682 C 46.283 39.746 46.048 38.708 46.074 37.66 C 46.074 36.386 46.429 35.171 47.082 34.075 C 47.834 32.885 48.915 31.938 50.193 31.348 C 51.585 30.637 53.333 30.311 55.437 30.311 C 56.652 30.311 57.896 30.4 59.111 30.578 C 60 30.696 60.86 30.933 61.66 31.26 C 61.778 31.289 61.896 31.407 61.956 31.526 C 61.985 31.644 62.015 31.764 62.015 31.882 L 62.015 36.711 C 62.016 36.828 61.961 36.939 61.867 37.008 C 61.6 37.067 61.452 37.067 61.333 37.008 Z\" fill=\"rgb(49,168,255)\"></path></svg>',svgContentId:10538758293,withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-1tknz00\",\"data-framer-name\":\"node js\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"nFgwqjfcu\",opacity:1,radius:500,style:{borderBottomLeftRadius:500,borderBottomRightRadius:500,borderTopLeftRadius:500,borderTopRightRadius:500},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 80 80\"><path d=\"M 40 80 C 17.909 80 0 80 0 80 L 0 0 C 0 0 17.909 0 40 0 L 40 0 C 62.091 0 80 0 80 0 L 80 80 C 80 80 62.091 80 40 80 Z\" fill=\"rgb(255,255,255)\"></path><g transform=\"translate(17.75 14.374)\" id=\"ss11827130547_2\"><path d=\"M 28.227 33.108 C 23.911 33.108 22.991 31.902 22.718 29.956 C 22.654 29.477 22.249 29.116 21.766 29.108 L 19.475 29.108 C 18.937 29.12 18.509 29.564 18.519 30.101 C 18.519 31.789 19.111 37.297 28.231 37.297 C 31.053 37.297 33.4 36.637 35.017 35.388 C 36.634 34.14 37.5 32.322 37.5 30.157 C 37.5 25.811 34.664 24.621 29.08 23.843 C 23.403 23.054 23.403 22.652 23.403 21.773 C 23.403 21.14 23.403 19.657 27.507 19.657 C 30.427 19.657 31.991 20.026 32.491 21.972 C 32.582 22.416 32.97 22.737 33.424 22.744 L 35.723 22.744 C 35.998 22.741 36.257 22.62 36.436 22.413 C 36.613 22.206 36.701 21.938 36.682 21.667 C 36.384 17.553 33.376 15.466 27.51 15.466 C 22.179 15.466 18.998 17.868 18.998 21.89 C 18.998 26.299 22.295 27.546 27.249 28.062 C 33.036 28.66 33.036 29.533 33.036 30.304 C 33.039 31.505 32.54 33.108 28.227 33.108 Z\" fill=\"rgb(0,0,0)\"></path><path d=\"M 42.333 11.351 L 24.344 0.562 C 23.029 -0.187 21.417 -0.187 20.102 0.562 L 2.111 11.35 C 0.793 12.158 -0.008 13.597 0 15.143 L 0 36.69 C -0.008 38.238 0.793 39.677 2.111 40.487 L 6.829 43.304 L 6.855 43.319 C 9.237 44.538 10.149 44.538 11.206 44.538 C 14.926 44.538 17.237 42.13 17.237 38.254 L 17.237 17.362 C 17.242 16.819 16.806 16.375 16.263 16.369 L 13.672 16.369 C 13.129 16.375 12.693 16.819 12.698 17.362 L 12.698 38.254 C 12.717 38.863 12.416 39.436 11.905 39.767 C 11.222 40.184 10.23 40.096 9.111 39.518 L 4.59 36.797 C 4.555 36.773 4.534 36.733 4.535 36.69 L 4.535 15.447 C 4.536 15.398 4.562 15.352 4.603 15.325 L 22.177 4.561 C 22.204 4.548 22.235 4.548 22.262 4.561 L 39.846 15.325 C 39.887 15.354 39.91 15.402 39.91 15.452 L 39.91 36.69 C 39.911 36.735 39.891 36.777 39.858 36.806 L 22.258 47.298 C 22.228 47.309 22.196 47.309 22.166 47.298 L 17.671 44.629 C 17.4 44.452 17.054 44.433 16.765 44.582 L 16.726 44.605 C 15.485 45.34 15.152 45.531 14.001 45.95 C 13.814 46.018 13.373 46.181 13.335 46.618 C 13.296 47.054 13.715 47.364 14.088 47.581 L 20.095 51.269 C 20.735 51.653 21.467 51.855 22.213 51.856 L 22.28 51.856 C 23.008 51.845 23.719 51.642 24.344 51.269 L 42.333 40.49 C 43.651 39.678 44.451 38.238 44.444 36.69 L 44.444 15.143 C 44.452 13.597 43.651 12.159 42.333 11.351 Z\" fill=\"rgb(0,0,0)\"></path></g></svg>',svgContentId:11827130547,withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-szohwb\",\"data-framer-name\":\"blender\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"Tc7ebkan9\",opacity:1,radius:500,style:{borderBottomLeftRadius:500,borderBottomRightRadius:500,borderTopLeftRadius:500,borderTopRightRadius:500},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 80 80\"><path d=\"M 40 80 C 17.909 80 0 80 0 80 L 0 0 C 0 0 17.909 0 40 0 L 40 0 C 62.091 0 80 0 80 0 L 80 80 C 80 80 62.091 80 40 80 Z\" fill=\"rgb(255, 174, 0)\"></path><path d=\"M 28.67 43.085 C 28.681 43.645 28.862 44.736 29.128 45.591 C 29.709 47.43 30.683 49.119 31.982 50.542 C 33.375 52.078 35.077 53.301 36.975 54.131 C 39.04 55.044 41.274 55.51 43.53 55.499 C 45.789 55.501 48.023 55.028 50.088 54.11 C 51.983 53.269 53.683 52.041 55.076 50.503 C 56.373 49.076 57.345 47.384 57.926 45.544 C 58.21 44.645 58.39 43.717 58.463 42.777 C 58.666 40.059 57.997 37.348 56.555 35.038 C 55.674 33.627 54.55 32.386 53.234 31.371 L 53.236 31.369 L 39.806 21.035 L 39.771 21.005 C 38.888 20.329 37.405 20.331 36.438 21.009 C 35.455 21.696 35.346 22.831 36.214 23.55 L 36.212 23.552 L 41.813 28.119 L 24.741 28.139 L 24.716 28.139 C 23.306 28.139 21.949 29.069 21.681 30.24 C 21.406 31.435 22.364 32.426 23.832 32.43 L 23.83 32.437 L 32.485 32.419 L 17.036 44.297 L 16.978 44.342 C 15.523 45.46 15.052 47.318 15.968 48.496 C 16.901 49.693 18.878 49.693 20.353 48.5 L 28.782 41.59 C 28.784 41.59 28.662 42.523 28.67 43.085 Z M 50.331 46.207 C 48.594 47.981 46.165 48.987 43.532 48.991 C 40.897 48.996 38.469 47.999 36.73 46.229 C 35.908 45.404 35.274 44.411 34.873 43.317 C 34.494 42.277 34.348 41.167 34.445 40.064 C 34.54 38.976 34.86 37.938 35.378 37.002 C 35.885 36.078 36.586 35.247 37.446 34.538 C 39.17 33.149 41.32 32.398 43.532 32.411 C 45.743 32.393 47.892 33.138 49.619 34.521 C 50.477 35.223 51.177 36.052 51.685 36.974 C 52.2 37.913 52.523 38.946 52.617 40.034 C 52.714 41.136 52.569 42.247 52.192 43.287 C 51.786 44.382 51.152 45.378 50.331 46.207 Z\" fill=\"rgb(0,0,0)\"></path><path d=\"M 37.919 40.178 C 37.998 38.742 38.699 37.478 39.758 36.58 C 40.871 35.653 42.275 35.149 43.722 35.158 C 45.248 35.158 46.645 35.697 47.687 36.58 C 48.744 37.478 49.447 38.744 49.527 40.178 C 49.608 41.655 49.017 43.027 47.977 44.043 C 46.832 45.138 45.306 45.742 43.724 45.727 C 42.14 45.742 40.612 45.138 39.466 44.043 C 38.428 43.027 37.835 41.655 37.919 40.178 Z\" fill=\"rgb(0,0,0)\"></path></svg>',svgContentId:10920132493,withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-1phdipe\",\"data-framer-name\":\"c++\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"q6Zdl8zzs\",opacity:1,radius:500,style:{borderBottomLeftRadius:500,borderBottomRightRadius:500,borderTopLeftRadius:500,borderTopRightRadius:500},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 80 80\"><path d=\"M 40 80 C 17.909 80 0 80 0 80 L 0 0 C 0 0 17.909 0 40 0 L 40 0 C 62.091 0 80 0 80 0 L 80 80 C 80 80 62.091 80 40 80 Z\" fill=\"rgb(255,255,255)\"></path><path d=\"M 60.953 28.001 L 48.74 34.994 L 46.208 36.447 L 46.206 36.444 L 40 40 L 33.797 43.553 C 35.077 45.751 37.441 47.106 40 47.109 C 42.56 47.105 44.925 45.75 46.208 43.553 L 52.412 47.114 C 49.842 51.503 45.115 54.208 39.998 54.217 C 34.877 54.214 30.147 51.504 27.586 47.106 L 19.045 51.999 C 19.383 52.58 19.848 53.087 20.359 53.38 L 38.136 63.559 C 39.16 64.147 40.835 64.147 41.861 63.559 L 59.639 53.38 C 60.149 53.087 60.614 52.58 60.953 51.999 C 61.292 51.421 61.5 50.767 61.5 50.179 L 61.5 29.821 C 61.5 29.233 61.292 28.579 60.953 28.001 Z M 54.333 40.79 L 52.741 40.79 L 52.741 42.37 L 51.151 42.37 L 51.151 40.79 L 49.558 40.79 L 49.558 39.21 L 51.151 39.21 L 51.151 37.63 L 52.741 37.63 L 52.741 39.21 L 54.333 39.21 Z M 60.307 40.79 L 58.714 40.79 L 58.714 42.37 L 57.122 42.37 L 57.122 40.79 L 55.531 40.79 L 55.531 39.21 L 57.122 39.21 L 57.122 37.63 L 58.714 37.63 L 58.714 39.21 L 60.307 39.21 Z\" fill=\"rgb(0, 112, 240)\"></path><path d=\"M 46.206 36.444 C 44.922 34.249 42.559 32.896 40 32.891 C 37.442 32.896 35.08 34.252 33.801 36.449 C 32.522 38.647 32.52 41.353 33.794 43.553 L 40 40 Z\" fill=\"rgb(0, 119, 255)\"></path><path d=\"M 25.667 40 C 25.675 32.151 32.087 25.791 40 25.783 C 45.117 25.793 49.843 28.498 52.414 32.886 L 48.786 34.968 L 60.953 28.001 C 60.64 27.438 60.188 26.963 59.639 26.62 L 41.861 16.441 C 40.835 15.853 39.16 15.853 38.136 16.441 L 20.359 26.62 C 19.337 27.206 18.5 28.647 18.5 29.821 L 18.5 50.179 C 18.5 50.767 18.708 51.421 19.047 51.999 L 27.588 47.106 C 26.326 44.948 25.663 42.496 25.667 40 Z\" fill=\"rgb(0, 119, 255)\"></path></svg>',svgContentId:8891430240,withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-1gkehlt\",\"data-framer-name\":\"git\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"pYEhiOhL0\",opacity:1,radius:500,style:{borderBottomLeftRadius:500,borderBottomRightRadius:500,borderTopLeftRadius:500,borderTopRightRadius:500},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 80 80\"><path d=\"M 40 80 C 17.909 80 0 80 0 80 L 0 0 C 0 0 17.909 0 40 0 L 40 0 C 62.091 0 80 0 80 0 L 80 80 C 80 80 62.091 80 40 80 Z\" fill=\"rgb(32, 53, 99)\"></path><path d=\"M 40 17 C 52.703 17 63 27.557 63 40.582 C 63 50.999 56.417 59.835 47.284 62.956 C 46.118 63.189 45.704 62.453 45.704 61.825 C 45.704 61.047 45.732 58.508 45.732 55.352 C 45.732 53.154 44.996 51.718 44.17 50.987 C 49.292 50.403 54.674 48.409 54.674 39.351 C 54.674 36.775 53.782 34.673 52.305 33.022 C 52.544 32.426 53.333 30.027 52.08 26.78 C 52.08 26.78 50.152 26.147 45.762 29.197 C 43.886 28.674 41.947 28.407 40 28.403 C 38.054 28.407 36.117 28.674 34.243 29.197 C 29.848 26.147 27.916 26.78 27.916 26.78 C 26.667 30.027 27.456 32.426 27.693 33.022 C 26.223 34.673 25.324 36.775 25.324 39.351 C 25.324 48.386 30.694 50.41 35.803 51.005 C 35.145 51.594 34.549 52.634 34.342 54.159 C 33.031 54.761 29.701 55.803 27.649 52.199 C 27.649 52.199 26.432 49.934 24.123 49.768 C 24.123 49.768 21.881 49.738 23.967 51.201 C 23.967 51.201 25.473 51.925 26.52 54.651 C 26.52 54.651 27.87 58.86 34.268 57.434 C 34.28 59.405 34.301 61.263 34.301 61.825 C 34.301 62.448 33.877 63.177 32.73 62.959 C 23.589 59.842 17 51.001 17 40.582 C 17 27.557 27.299 17 40 17\" fill=\"rgb(255, 255, 255)\"></path></svg>',svgContentId:12274563474,withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-bd81fa\",\"data-framer-name\":\"xd\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"Wx4PgJw35\",opacity:1,radius:500,style:{borderBottomLeftRadius:500,borderBottomRightRadius:500,borderTopLeftRadius:500,borderTopRightRadius:500},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 80 80\"><path d=\"M 40 80 C 17.909 80 0 80 0 80 L 0 0 C 0 0 17.909 0 40 0 L 40 0 C 62.091 0 80 0 80 0 L 80 80 C 80 80 62.091 80 40 80 Z\" fill=\"rgb(71, 1, 54)\"></path><path d=\"M 41.816 27.666 L 33.705 40.926 L 42.357 54.99 C 42.411 55.097 42.438 55.204 42.411 55.312 C 42.384 55.419 42.276 55.338 42.114 55.365 L 35.922 55.365 C 35.49 55.365 35.192 55.338 35.003 55.071 C 34.435 53.945 33.84 52.847 33.273 51.722 C 32.705 50.624 32.083 49.498 31.434 48.347 C 30.785 47.195 30.136 46.043 29.487 44.864 L 29.433 44.864 C 28.866 46.016 28.244 47.168 27.622 48.32 C 27 49.472 26.378 50.624 25.783 51.749 C 25.162 52.874 24.54 54.026 23.918 55.124 C 23.81 55.392 23.593 55.419 23.296 55.419 L 17.348 55.419 C 17.24 55.419 17.159 55.472 17.159 55.338 C 17.132 55.231 17.159 55.124 17.213 55.044 L 25.621 41.381 L 17.429 27.639 C 17.348 27.532 17.321 27.425 17.375 27.371 C 17.429 27.291 17.537 27.264 17.645 27.264 L 23.783 27.264 C 23.918 27.264 24.053 27.291 24.161 27.317 C 24.269 27.371 24.35 27.451 24.432 27.558 C 24.945 28.71 25.54 29.862 26.162 31.014 C 26.811 32.166 27.433 33.291 28.109 34.416 C 28.757 35.542 29.352 36.667 29.92 37.819 L 29.974 37.819 C 30.542 36.64 31.137 35.488 31.731 34.363 C 32.326 33.238 32.948 32.113 33.57 30.987 C 34.192 29.862 34.787 28.71 35.381 27.612 C 35.408 27.505 35.463 27.398 35.544 27.344 C 35.652 27.291 35.76 27.264 35.895 27.291 L 41.6 27.291 C 41.735 27.264 41.87 27.344 41.897 27.478 C 41.924 27.505 41.87 27.612 41.816 27.666 Z M 54.307 55.928 C 52.306 55.955 50.306 55.553 48.494 54.722 C 46.791 53.945 45.385 52.66 44.412 51.079 C 43.411 49.445 42.925 47.409 42.925 44.971 C 42.898 42.989 43.411 41.033 44.412 39.319 C 45.439 37.577 46.926 36.131 48.71 35.166 C 50.603 34.122 52.874 33.613 55.551 33.613 C 55.686 33.613 55.875 33.613 56.119 33.64 C 56.362 33.666 56.632 33.666 56.957 33.693 L 56.957 25.228 C 56.957 25.04 57.038 24.933 57.227 24.933 L 62.715 24.933 C 62.851 24.906 62.959 25.014 62.986 25.121 L 62.986 50.677 C 62.986 51.159 63.013 51.695 63.04 52.285 C 63.094 52.847 63.121 53.383 63.148 53.838 C 63.148 54.026 63.067 54.187 62.878 54.267 C 61.472 54.856 59.985 55.285 58.471 55.553 C 57.092 55.794 55.713 55.928 54.307 55.928 Z M 56.957 50.57 L 56.957 38.783 C 56.713 38.729 56.47 38.676 56.227 38.649 C 55.929 38.622 55.632 38.595 55.334 38.595 C 54.28 38.595 53.226 38.81 52.279 39.292 C 51.36 39.747 50.576 40.417 49.981 41.274 C 49.386 42.132 49.089 43.283 49.089 44.677 C 49.062 45.614 49.224 46.552 49.549 47.436 C 49.819 48.159 50.225 48.802 50.765 49.338 C 51.279 49.82 51.901 50.195 52.604 50.409 C 53.334 50.65 54.091 50.758 54.848 50.758 C 55.253 50.758 55.632 50.731 55.983 50.704 C 56.335 50.731 56.632 50.677 56.957 50.57 Z\" fill=\"rgb(255,97,246)\"></path></svg>',svgContentId:11621360833,withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-qte6dz\",\"data-framer-name\":\"premiere\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"E6fDweLiV\",opacity:1,radius:500,style:{borderBottomLeftRadius:500,borderBottomRightRadius:500,borderTopLeftRadius:500,borderTopRightRadius:500},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 80 80\"><path d=\"M 40 80 C 17.909 80 0 80 0 80 L 0 0 C 0 0 17.909 0 40 0 L 40 0 C 62.091 0 80 0 80 0 L 80 80 C 80 80 62.091 80 40 80 Z\" fill=\"rgb(0,0,91)\"></path><path d=\"M 17.037 5.333 L 62.963 5.333 C 69.926 5.333 75.556 10.963 75.556 17.926 L 75.556 62.074 C 75.556 69.037 69.926 74.667 62.963 74.667 L 17.037 74.667 C 10.074 74.667 4.444 69.037 4.444 62.074 L 4.444 17.926 C 4.444 10.963 10.074 5.333 17.037 5.333 Z\" fill=\"rgb(0,0,91)\"></path><path d=\"M 21.333 53.926 L 21.333 23.407 C 21.333 23.2 21.422 23.082 21.629 23.082 C 22.133 23.082 22.607 23.082 23.289 23.052 C 24 23.022 24.74 23.022 25.54 22.993 C 26.34 22.963 27.2 22.963 28.118 22.933 C 29.037 22.904 29.926 22.904 30.815 22.904 C 33.244 22.904 35.26 23.2 36.918 23.822 C 38.4 24.326 39.763 25.156 40.889 26.252 C 41.844 27.209 42.581 28.361 43.052 29.629 C 43.496 30.874 43.733 32.148 43.733 33.482 C 43.733 36.029 43.14 38.133 41.956 39.793 C 40.771 41.452 39.111 42.696 37.185 43.407 C 35.171 44.148 32.948 44.415 30.518 44.415 C 29.807 44.415 29.333 44.415 29.037 44.385 C 28.74 44.356 28.326 44.356 27.763 44.356 L 27.763 53.867 C 27.776 53.965 27.749 54.065 27.687 54.143 C 27.626 54.221 27.536 54.271 27.437 54.282 L 21.689 54.282 C 21.452 54.282 21.333 54.163 21.333 53.896 Z M 27.793 28.829 L 27.793 38.785 C 28.207 38.815 28.593 38.844 28.948 38.844 L 30.518 38.844 C 31.674 38.844 32.829 38.667 33.926 38.311 C 34.874 38.044 35.704 37.482 36.356 36.74 C 36.978 36 37.274 34.993 37.274 33.689 C 37.302 32.763 37.066 31.848 36.593 31.052 C 36.099 30.282 35.372 29.69 34.518 29.363 C 33.422 28.918 32.237 28.74 31.022 28.771 C 30.252 28.771 29.571 28.771 29.007 28.8 C 28.415 28.771 28 28.8 27.793 28.829 Z M 48 30.578 L 53.185 30.578 C 53.482 30.578 53.718 30.785 53.807 31.052 C 53.896 31.289 53.956 31.526 53.985 31.793 C 54.044 32.089 54.104 32.415 54.133 32.711 C 54.163 33.037 54.193 33.393 54.193 33.778 C 55.082 32.74 56.148 31.882 57.363 31.229 C 58.726 30.46 60.296 30.074 61.867 30.074 C 62.074 30.044 62.252 30.193 62.282 30.4 L 62.282 36.296 C 62.282 36.533 62.133 36.622 61.807 36.622 C 60.74 36.593 59.644 36.682 58.607 36.918 C 57.748 37.096 56.918 37.363 56.118 37.718 C 55.556 37.985 55.022 38.34 54.607 38.815 L 54.607 53.926 C 54.607 54.222 54.489 54.34 54.222 54.34 L 48.385 54.34 C 48.274 54.359 48.161 54.331 48.072 54.264 C 47.982 54.197 47.924 54.096 47.911 53.985 L 47.911 37.452 C 47.911 36.74 47.911 36 47.882 35.229 C 47.852 34.46 47.852 33.689 47.822 32.918 C 47.822 32.237 47.763 31.585 47.704 30.904 C 47.688 30.833 47.701 30.759 47.74 30.698 C 47.779 30.637 47.84 30.593 47.911 30.578 C 47.911 30.548 47.971 30.548 48 30.578 Z\" fill=\"rgb(153,153,255)\"></path></svg>',svgContentId:9696733126,withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-1ivi2np\",\"data-framer-name\":\"python\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"d2jkgbESl\",opacity:1,radius:500,style:{borderBottomLeftRadius:500,borderBottomRightRadius:500,borderTopLeftRadius:500,borderTopRightRadius:500},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 80 80\"><path d=\"M 40 80 C 17.909 80 0 80 0 80 L 0 0 C 0 0 17.909 0 40 0 L 40 0 C 62.091 0 80 0 80 0 L 80 80 C 80 80 62.091 80 40 80 Z\" fill=\"rgb(255,255,255)\"></path><g transform=\"translate(17.08 17.696)\" id=\"ss9697987006_2\"><g><defs><linearGradient id=\"idss9697987006_3g1572255916\" x1=\"0.849101837912843\" x2=\"0.15089816208715706\" y1=\"1\" y2=\"0\"><stop offset=\"0\" stop-color=\"rgb(255,212,59)\" stop-opacity=\"1\"></stop><stop offset=\"1\" stop-color=\"rgb(255,232,115)\" stop-opacity=\"1\"></stop></linearGradient></defs><path d=\"M 34.668 11.474 L 34.668 16.241 C 34.668 19.937 31.5 23.048 27.887 23.048 L 17.045 23.048 C 14.075 23.048 11.618 25.562 11.618 28.503 L 11.618 38.726 C 11.618 41.636 14.176 43.347 17.045 44.182 C 20.481 45.181 23.776 45.361 27.887 44.182 C 30.62 43.399 33.314 41.824 33.314 38.726 L 33.314 34.634 L 22.473 34.634 L 22.473 33.271 L 38.741 33.271 C 41.896 33.271 43.071 31.094 44.168 27.828 C 45.301 24.465 45.253 21.231 44.168 16.917 C 43.389 13.811 41.899 11.474 38.741 11.474 Z M 28.57 37.362 C 29.695 37.362 30.607 38.274 30.607 39.402 C 30.607 40.534 29.695 41.454 28.57 41.454 C 27.449 41.454 26.533 40.534 26.533 39.402 C 26.533 38.274 27.449 37.362 28.57 37.362 Z\" fill=\"url(#idss9697987006_3g1572255916)\"></path></g><g><defs><linearGradient id=\"idss9697987006_4g-1249379430\" x1=\"0\" x2=\"1\" y1=\"0.06523099180099845\" y2=\"0.9347690081990015\"><stop offset=\"0\" stop-color=\"rgb(90,159,212)\" stop-opacity=\"1\"></stop><stop offset=\"1\" stop-color=\"rgb(48,105,152)\" stop-opacity=\"1\"></stop></linearGradient></defs><path d=\"M 22.232 0 C 20.376 0.009 18.604 0.166 17.045 0.439 C 12.452 1.241 11.618 2.921 11.618 6.019 L 11.618 10.111 L 22.473 10.111 L 22.473 11.474 L 7.545 11.474 C 4.39 11.474 1.628 13.35 0.764 16.917 C -0.233 21.007 -0.277 23.558 0.764 27.828 C 1.535 31.006 3.378 33.271 6.533 33.271 L 10.264 33.271 L 10.264 28.366 C 10.264 24.823 13.364 21.697 17.045 21.697 L 27.887 21.697 C 30.905 21.697 33.314 19.239 33.314 16.241 L 33.314 6.019 C 33.314 3.11 30.832 0.924 27.887 0.439 C 26.022 0.132 24.087 -0.008 22.232 0 Z M 16.362 3.292 C 17.484 3.292 18.399 4.212 18.399 5.344 C 18.399 6.471 17.483 7.383 16.362 7.383 C 15.237 7.383 14.326 6.471 14.326 5.344 C 14.326 4.212 15.237 3.292 16.362 3.292 Z\" fill=\"url(#idss9697987006_4g-1249379430)\"></path></g></g></svg>',svgContentId:9697987006,withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-1gf90fk\",\"data-framer-name\":\"jupyter\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"Lh0ISXajB\",opacity:1,radius:500,style:{backgroundColor:\"rgba(0, 0, 0, 0)\",borderBottomLeftRadius:500,borderBottomRightRadius:500,borderTopLeftRadius:500,borderTopRightRadius:500},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 80 80\"><path d=\"M 40 80 C 17.909 80 0 80 0 80 L 0 0 C 0 0 17.909 0 40 0 L 40 0 C 62.091 0 80 0 80 0 L 80 80 C 80 80 62.091 80 40 80 Z\" fill=\"rgb(255,255,255)\"></path><g transform=\"translate(16.3 14.193)\" id=\"ss11961930937_2\"><g transform=\"translate(0 20.732)\" id=\"ss11961930937_3\"><path d=\"M 1.922 8.024 C 1.922 9.737 1.784 10.296 1.432 10.707 C 1.039 11.061 0.529 11.256 0 11.255 L 0.138 12.234 C 0.957 12.245 1.752 11.957 2.373 11.422 C 3.048 10.6 3.359 9.54 3.235 8.485 L 3.235 2.002 L 1.922 2.002 Z\" fill=\"rgb(0,0,0)\"></path><path d=\"M 11.719 7.252 C 11.719 7.986 11.719 8.642 11.777 9.209 L 10.611 9.209 L 10.533 8.045 C 10.036 8.885 9.126 9.393 8.149 9.377 C 7.015 9.377 5.66 8.761 5.66 6.243 L 5.66 2.062 L 6.974 2.062 L 6.974 5.978 C 6.974 7.34 7.396 8.25 8.582 8.25 C 9.074 8.256 9.549 8.063 9.897 7.715 C 10.246 7.367 10.44 6.894 10.435 6.401 L 10.435 2.013 L 11.749 2.013 L 11.749 7.212 Z\" fill=\"rgb(0,0,0)\"></path><path d=\"M 14.209 4.392 C 14.209 3.481 14.209 2.737 14.15 2.06 L 15.326 2.06 L 15.386 3.285 C 15.92 2.384 16.907 1.85 17.954 1.894 C 19.699 1.894 21.013 3.354 21.013 5.527 C 21.013 8.093 19.435 9.366 17.729 9.366 C 16.841 9.405 15.997 8.979 15.504 8.24 L 15.504 12.156 L 14.209 12.156 L 14.209 4.393 Z M 15.505 6.301 C 15.508 6.478 15.527 6.655 15.563 6.829 C 15.792 7.724 16.599 8.349 17.523 8.347 C 18.906 8.347 19.72 7.222 19.72 5.586 C 19.72 4.156 18.955 2.932 17.573 2.932 C 16.441 3.025 15.555 3.944 15.505 5.077 Z\" fill=\"rgb(0,0,0)\"></path><path d=\"M 23.354 2.055 L 24.931 6.275 C 25.097 6.745 25.275 7.313 25.391 7.734 C 25.529 7.303 25.677 6.756 25.853 6.245 L 27.284 2.055 L 28.666 2.055 L 26.706 7.147 C 25.726 9.594 25.127 10.858 24.225 11.621 C 23.771 12.036 23.217 12.326 22.617 12.464 L 22.294 11.367 C 22.713 11.229 23.103 11.013 23.441 10.729 C 23.919 10.34 24.299 9.844 24.549 9.281 C 24.602 9.183 24.639 9.077 24.657 8.967 C 24.646 8.849 24.616 8.734 24.569 8.625 L 21.903 2.035 L 23.334 2.035 Z\" fill=\"rgb(0,0,0)\"></path><path d=\"M 32.155 0 L 32.155 2.057 L 34.038 2.057 L 34.038 3.036 L 32.155 3.036 L 32.155 6.894 C 32.155 7.775 32.41 8.284 33.135 8.284 C 33.393 8.289 33.65 8.259 33.9 8.196 L 33.959 9.175 C 33.584 9.305 33.188 9.364 32.791 9.351 C 32.26 9.384 31.742 9.184 31.371 8.804 C 30.971 8.27 30.789 7.605 30.861 6.943 L 30.861 3.026 L 29.743 3.026 L 29.743 2.047 L 30.881 2.047 L 30.881 0.304 Z\" fill=\"rgb(0,0,0)\"></path><path d=\"M 36.457 5.861 C 36.403 6.533 36.647 7.195 37.125 7.672 C 37.602 8.149 38.265 8.392 38.938 8.338 C 39.61 8.353 40.278 8.227 40.898 7.967 L 41.124 8.945 C 40.363 9.259 39.545 9.409 38.722 9.386 C 37.752 9.453 36.8 9.093 36.118 8.4 C 35.435 7.708 35.09 6.752 35.172 5.783 C 35.172 3.629 36.457 1.925 38.555 1.925 C 40.909 1.925 41.496 3.982 41.496 5.294 C 41.509 5.495 41.509 5.699 41.496 5.901 L 36.427 5.901 Z M 40.3 4.882 C 40.377 4.353 40.22 3.816 39.87 3.41 C 39.521 3.005 39.013 2.77 38.477 2.767 C 37.361 2.848 36.49 3.765 36.467 4.882 Z\" fill=\"rgb(0,0,0)\"></path><path d=\"M 43.489 4.281 C 43.489 3.439 43.489 2.715 43.431 2.048 L 44.607 2.048 L 44.607 3.449 L 44.667 3.449 C 44.919 2.563 45.706 1.934 46.627 1.881 C 46.751 1.865 46.876 1.865 47 1.881 L 47 3.105 C 46.85 3.088 46.699 3.088 46.549 3.105 C 45.628 3.141 44.878 3.853 44.794 4.769 C 44.757 4.969 44.738 5.173 44.735 5.376 L 44.735 9.186 L 43.442 9.186 L 43.442 4.29 L 43.49 4.28 Z\" fill=\"rgb(0,0,0)\"></path></g><g transform=\"translate(1.466 0)\" id=\"ss11961930937_11\"><path d=\"M 41.448 3.119 C 41.53 4.464 40.79 5.726 39.574 6.312 C 38.358 6.897 36.908 6.69 35.906 5.787 C 34.903 4.885 34.547 3.466 35.004 2.197 C 35.461 0.929 36.641 0.062 37.989 0.005 C 38.862 -0.043 39.718 0.258 40.368 0.842 C 41.017 1.427 41.407 2.246 41.45 3.118 Z\" fill=\"rgb(118,118,119)\"></path><path d=\"M 22.063 41.468 C 13.24 41.468 5.484 38.305 1.475 33.634 C 4.662 42.24 12.876 47.953 22.063 47.953 C 31.249 47.953 39.464 42.24 42.65 33.634 C 38.651 38.305 30.925 41.468 22.063 41.468 Z\" fill=\"rgb(243,119,38)\"></path><path d=\"M 22.063 11.094 C 30.886 11.094 38.641 14.257 42.65 18.929 C 39.464 10.323 31.249 4.61 22.063 4.61 C 12.876 4.61 4.662 10.323 1.475 18.929 C 5.484 14.248 13.2 11.094 22.063 11.094 Z\" fill=\"rgb(243,119,38)\"></path><path d=\"M 9.916 50.558 C 10.022 52.253 9.091 53.844 7.56 54.583 C 6.029 55.322 4.203 55.063 2.939 53.928 C 1.674 52.792 1.223 51.006 1.796 49.407 C 2.37 47.809 3.855 46.715 5.553 46.64 C 6.652 46.582 7.729 46.962 8.548 47.696 C 9.366 48.431 9.858 49.461 9.916 50.558 Z\" fill=\"rgb(158,158,158)\"></path><path d=\"M 2.477 10.031 C 1.15 10.066 0.043 9.024 0.001 7.699 C -0.041 6.374 0.997 5.264 2.323 5.215 C 3.65 5.167 4.766 6.198 4.821 7.523 C 4.86 8.859 3.816 9.977 2.479 10.031 Z\" fill=\"rgb(97,98,98)\"></path></g></g></svg>',svgContentId:11961930937,withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-h57dpa\",\"data-framer-name\":\"owasp\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"l4tbgdI6m\",opacity:1,radius:500,style:{backgroundColor:\"rgba(0, 0, 0, 0)\",borderBottomLeftRadius:500,borderBottomRightRadius:500,borderTopLeftRadius:500,borderTopRightRadius:500},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 80 80\"><path d=\"M 40 80 C 17.909 80 0 80 0 80 L 0 0 C 0 0 17.909 0 40 0 L 40 0 C 62.091 0 80 0 80 0 L 80 80 C 80 80 62.091 80 40 80 Z\" fill=\"rgb(28, 28, 28)\"></path><path d=\"M 48.119 57.715 C 47.319 57.715 44.406 52.529 44.015 51.052 C 43.196 47.956 43.373 46.648 43.421 46.231 C 43.571 44.954 44.81 44.315 44.885 42.59 C 44.906 42.056 45.177 39.392 45.392 37.31 C 44.833 37.197 44.31 36.952 43.865 36.596 C 45.273 38.487 43.198 40.752 40.183 43.769 C 36.983 46.969 29.881 49.937 29.881 49.937 C 29.881 49.937 32.85 42.833 36.05 39.635 C 38.404 37.283 40.3 35.504 41.917 35.504 C 42.375 35.504 42.806 35.644 43.223 35.954 C 42.867 35.509 42.622 34.986 42.508 34.427 C 40.427 34.642 37.763 34.91 37.229 34.935 C 35.502 35.01 34.865 36.248 33.59 36.398 C 33.444 36.415 33.185 36.448 32.781 36.448 C 32.031 36.448 30.775 36.335 28.769 35.802 C 27.16 35.379 21.169 31.969 22.227 31.542 C 22.769 31.323 24.492 31.175 26.758 31.175 C 28.94 31.175 31.627 31.312 34.25 31.654 C 37.521 32.081 40.521 32.619 42.567 33.021 C 42.6 32.91 42.64 32.804 42.688 32.7 L 40.596 31.7 C 40.596 31.7 38.929 29.783 39.106 29.65 C 39.114 29.645 39.122 29.643 39.131 29.644 C 39.394 29.644 40.729 31.171 40.858 31.344 L 42.119 31.765 L 41.527 31.246 C 41.527 31.246 40.719 28.25 40.929 28.179 L 40.938 28.179 C 41.158 28.179 41.894 30.783 41.956 30.971 C 42.102 31.096 42.588 31.287 43.198 31.637 L 42.556 29.992 C 42.556 29.992 42.848 27.273 43.063 27.273 L 43.069 27.273 C 43.288 27.317 43.027 29.542 42.971 29.817 L 44.033 31.448 C 44.342 31.333 44.669 31.275 44.998 31.277 C 45.381 31.277 45.777 31.352 46.16 31.5 C 45.669 30.454 45.706 29.365 46.358 28.712 C 46.564 28.509 46.816 28.359 47.094 28.277 C 47.174 27.815 47.576 27.477 48.046 27.479 C 48.31 27.479 48.575 27.583 48.779 27.787 C 48.966 27.973 49.076 28.222 49.085 28.485 C 49.4 27.837 49.771 26.965 49.746 26.679 C 49.683 26.04 48.942 24.904 48.933 24.894 C 48.9 24.845 48.896 24.781 48.924 24.729 C 48.953 24.677 49.007 24.645 49.067 24.646 C 49.119 24.646 49.171 24.671 49.2 24.719 C 49.233 24.767 49.994 25.931 50.063 26.65 C 50.1 27.062 49.625 28.1 49.369 28.629 C 50.135 29.052 50.765 29.684 51.188 30.45 C 51.698 30.2 52.677 29.754 53.119 29.754 L 53.169 29.756 C 53.888 29.825 55.052 30.587 55.1 30.619 C 55.174 30.667 55.194 30.766 55.146 30.84 C 55.098 30.913 54.999 30.934 54.925 30.885 C 54.915 30.877 53.779 30.135 53.14 30.073 L 53.108 30.073 C 52.796 30.073 51.958 30.429 51.333 30.733 C 51.583 30.742 51.838 30.844 52.031 31.04 C 52.429 31.425 52.441 32.059 52.056 32.458 C 51.916 32.598 51.737 32.691 51.542 32.725 C 51.459 33.003 51.309 33.256 51.104 33.462 C 50.729 33.82 50.226 34.012 49.708 33.994 C 49.267 33.994 48.79 33.879 48.319 33.66 C 48.594 34.375 48.615 35.135 48.371 35.785 L 50.002 36.848 C 50.2 36.808 51.39 36.665 52.071 36.665 C 52.342 36.665 52.533 36.687 52.546 36.748 C 52.588 36.969 49.827 37.262 49.827 37.262 L 48.181 36.621 C 48.531 37.231 48.723 37.719 48.848 37.862 C 49.038 37.925 51.71 38.679 51.64 38.89 C 51.631 38.915 51.585 38.925 51.508 38.925 C 50.919 38.925 48.571 38.292 48.571 38.292 L 48.054 37.7 L 48.475 38.96 C 48.656 39.096 50.3 40.533 50.169 40.712 C 50.16 40.723 50.15 40.727 50.135 40.727 C 49.846 40.727 48.121 39.223 48.121 39.223 L 47.119 37.131 C 47.015 37.179 46.908 37.219 46.798 37.252 C 47.2 39.298 47.738 42.298 48.165 45.569 C 48.863 50.921 48.706 56.529 48.277 57.59 C 48.244 57.675 48.19 57.715 48.119 57.715 M 40 65 C 26.194 65 15 53.806 15 40 C 15 26.194 26.194 15 40 15 C 53.806 15 65 26.194 65 40 C 65 53.806 53.806 65 40 65 M 40 18.848 C 28.319 18.848 18.848 28.319 18.848 40 C 18.848 51.681 28.319 61.152 40 61.152 C 51.681 61.152 61.152 51.681 61.152 40 C 61.152 28.319 51.681 18.848 40 18.848 Z\" fill=\"rgb(255, 255, 255)\"></path></svg>',svgContentId:9912296957,withExternalLayout:true}),/*#__PURE__*/_jsx(SVG,{className:\"framer-1nmi7nb\",\"data-framer-name\":\"illustrator\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"KsJrRmilg\",opacity:1,radius:500,style:{borderBottomLeftRadius:500,borderBottomRightRadius:500,borderTopLeftRadius:500,borderTopRightRadius:500},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 80 80\"><path d=\"M 40 80 C 17.909 80 0 80 0 80 L 0 0 C 0 0 17.909 0 40 0 L 40 0 C 62.091 0 80 0 80 0 L 80 80 C 80 80 62.091 80 40 80 Z\" fill=\"rgb(51,0,0)\"></path><path d=\"M 17.037 5.333 L 62.963 5.333 C 69.926 5.333 75.556 10.963 75.556 17.925 L 75.556 62.074 C 75.556 69.036 69.926 74.667 62.963 74.667 L 17.037 74.667 C 10.074 74.667 4.444 69.036 4.444 62.074 L 4.444 17.925 C 4.444 10.963 10.074 5.333 17.037 5.333 Z\" fill=\"rgb(51,0,0)\"></path><path d=\"M 38.815 46.814 L 27.793 46.814 L 25.54 53.778 C 25.482 54.044 25.244 54.222 24.978 54.193 L 19.407 54.193 C 19.082 54.193 18.993 54.015 19.082 53.66 L 28.622 26.193 C 28.711 25.896 28.8 25.571 28.918 25.215 C 29.037 24.593 29.096 23.94 29.096 23.289 C 29.067 23.14 29.185 22.992 29.333 22.963 L 37.007 22.963 C 37.244 22.963 37.363 23.052 37.393 23.2 L 48.207 53.718 C 48.296 54.044 48.207 54.193 47.911 54.193 L 41.718 54.193 C 41.511 54.222 41.304 54.074 41.244 53.867 Z M 29.511 40.8 L 37.037 40.8 C 36.86 40.178 36.622 39.437 36.356 38.667 C 36.089 37.867 35.822 37.007 35.556 36.118 C 35.26 35.2 34.993 34.311 34.696 33.392 C 34.4 32.474 34.133 31.614 33.896 30.756 C 33.66 29.925 33.452 29.156 33.244 28.444 L 33.185 28.444 C 32.919 29.736 32.583 31.012 32.178 32.267 C 31.733 33.689 31.289 35.171 30.815 36.652 C 30.432 38.05 29.997 39.434 29.511 40.8 Z M 54.815 28.148 C 53.837 28.178 52.889 27.793 52.178 27.111 C 51.499 26.369 51.137 25.39 51.171 24.385 C 51.14 23.378 51.526 22.429 52.237 21.748 C 52.949 21.075 53.894 20.703 54.874 20.711 C 56.029 20.711 56.918 21.067 57.571 21.748 C 58.227 22.466 58.578 23.412 58.548 24.385 C 58.585 25.396 58.211 26.38 57.511 27.111 C 56.829 27.822 55.822 28.207 54.815 28.148 Z M 51.496 53.867 L 51.496 31.052 C 51.496 30.756 51.615 30.637 51.882 30.637 L 57.748 30.637 C 58.015 30.637 58.133 30.785 58.133 31.052 L 58.133 53.867 C 58.133 54.193 58.015 54.34 57.748 54.34 L 51.94 54.34 C 51.644 54.34 51.496 54.163 51.496 53.867 Z\" fill=\"rgb(255,154,0)\"></path></svg>',svgContentId:10347994600,withExternalLayout:true}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-nhm4mw\",\"data-framer-name\":\"imweb\",layoutDependency:layoutDependency,layoutId:\"ej8OH7rA_\",style:{backgroundColor:\"rgb(255, 255, 255)\",borderBottomLeftRadius:200,borderBottomRightRadius:200,borderTopLeftRadius:200,borderTopRightRadius:200},children:[/*#__PURE__*/_jsx(SVG,{className:\"framer-765n6s\",\"data-framer-name\":\"imweb\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"YI4Wuhkls\",opacity:1,radius:500,style:{backgroundColor:\"rgba(0, 0, 0, 0)\",borderBottomLeftRadius:500,borderBottomRightRadius:500,borderTopLeftRadius:500,borderTopRightRadius:500},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 80 80\"><path d=\"M 40 80 C 17.909 80 0 80 0 80 L 0 0 C 0 0 17.909 0 40 0 L 40 0 C 62.091 0 80 0 80 0 L 80 80 C 80 80 62.091 80 40 80 Z\" fill=\"rgb(255,255,255)\"></path></svg>',svgContentId:10774212385,withExternalLayout:true}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fit\",intrinsicHeight:182,intrinsicWidth:245,pixelHeight:182,pixelWidth:245,positionX:\"center\",positionY:\"center\",src:\"https://framerusercontent.com/images/IGjLPguFwNxlPEDACAFX4fb5v5c.png\"},className:\"framer-914oct\",\"data-framer-name\":\"image\",layoutDependency:layoutDependency,layoutId:\"ve5oISX4S\",transformTemplate:transformTemplate1})]})]})})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-sPDTO.framer-1m6d4gf, .framer-sPDTO .framer-1m6d4gf { display: block; }\",\".framer-sPDTO.framer-zrj4n1 { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: 372px; justify-content: center; overflow: hidden; padding: 100px 0px 0px 0px; position: relative; width: 1336px; }\",\".framer-sPDTO .framer-1ar7d19-container { flex: none; height: 272px; max-width: 100%; position: relative; width: 100%; }\",\".framer-sPDTO .framer-15f5xj9, .framer-sPDTO .framer-1gntuh3, .framer-sPDTO .framer-7f78ew, .framer-sPDTO .framer-gxwjt, .framer-sPDTO .framer-1371vn1, .framer-sPDTO .framer-bdnlsr, .framer-sPDTO .framer-1rcx3z5, .framer-sPDTO .framer-1c8m12p, .framer-sPDTO .framer-1kq9r4t, .framer-sPDTO .framer-bn6q6b, .framer-sPDTO .framer-kirrd0, .framer-sPDTO .framer-qte6dz, .framer-sPDTO .framer-19qh79x, .framer-sPDTO .framer-1tknz00, .framer-sPDTO .framer-szohwb, .framer-sPDTO .framer-1phdipe, .framer-sPDTO .framer-1gkehlt, .framer-sPDTO .framer-bd81fa, .framer-sPDTO .framer-1ivi2np, .framer-sPDTO .framer-1gf90fk, .framer-sPDTO .framer-h57dpa, .framer-sPDTO .framer-1nmi7nb { height: 80px; position: relative; width: 80px; }\",\".framer-sPDTO .framer-nhm4mw { height: 80px; overflow: hidden; position: relative; width: 80px; will-change: var(--framer-will-change-override, transform); }\",\".framer-sPDTO .framer-765n6s { flex: none; height: 80px; left: calc(50.00000000000002% - 80px / 2); position: absolute; top: calc(50.00000000000002% - 80px / 2); width: 80px; }\",\".framer-sPDTO .framer-914oct { aspect-ratio: 3.5164835164835164 / 1; flex: none; height: var(--framer-aspect-ratio-supported, 50px); left: -45px; overflow: visible; position: absolute; right: -51px; top: 49%; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-sPDTO.framer-zrj4n1 { gap: 0px; } .framer-sPDTO.framer-zrj4n1 > * { margin: 0px; margin-bottom: calc(10px / 2); margin-top: calc(10px / 2); } .framer-sPDTO.framer-zrj4n1 > :first-child { margin-top: 0px; } .framer-sPDTO.framer-zrj4n1 > :last-child { margin-bottom: 0px; } }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 372\n * @framerIntrinsicWidth 1336\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramerBq2qNuwKW=withCSS(Component,css,\"framer-sPDTO\");export default FramerBq2qNuwKW;FramerBq2qNuwKW.displayName=\"Tools (Desktop)\";FramerBq2qNuwKW.defaultProps={height:372,width:1336};addFonts(FramerBq2qNuwKW,[{explicitInter:true,fonts:[]},...PhysicsFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerBq2qNuwKW\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"372\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"1336\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerImmutableVariables\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerDisplayContentsDiv\":\"false\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Bq2qNuwKW.map"],
  "mappings": "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",
  "names": ["clamp", "t", "s", "e", "sanitize", "isString", "r", "n", "a", "createUnitType", "o", "c", "l", "i", "p", "u", "isColorString", "splitColor", "f", "m", "g", "h", "parseHex", "b", "d", "v", "y", "test", "analyse", "parse", "createTransformer", "convertNumbersToZero", "getAnimatableNone", "O", "j", "applyDefaultFilter", "F", "N", "e", "t", "n", "window", "createRenderStep", "s", "r", "c", "o", "a", "l", "f", "u", "startLoop", "d", "i", "processStep", "processFrame", "clamp", "t", "e", "n", "d", "h", "m", "y", "g", "findSpring", "o", "s", "r", "i", "u", "calcAngularFreq", "l", "p", "f", "approximateRoot", "v", "M", "x", "isSpringType", "getSpringOptions", "spring", "__rest", "zero", "createSpring", "reverseEasing", "t", "e", "mirrorEasing", "createExpoIn", "createBackIn", "createAnticipate", "T", "w", "A", "R", "F", "createExpoIn", "D", "reverseEasing", "j", "mirrorEasing", "circIn", "t", "q", "I", "P", "createBackIn", "T", "k", "E", "B", "createAnticipate", "C", "N", "U", "bounceOut", "e", "w", "A", "R", "z", "identity", "t", "createAttractor", "e", "n", "o", "s", "r", "G", "H", "wrap", "t", "e", "n", "o", "Q", "V", "Ticker", "props", "slots", "gap", "padding", "paddingPerSide", "paddingTop", "paddingRight", "paddingBottom", "paddingLeft", "speed", "hoverFactor", "direction", "alignment", "sizingOptions", "fadeOptions", "style", "fadeContent", "overflow", "fadeWidth", "fadeInset", "fadeAlpha", "widthType", "heightType", "paddingValue", "isCanvas", "RenderTarget", "numChildren", "j", "hasChildren", "isHorizontal", "parentRef", "pe", "childrenRef", "se", "W", "size", "setSize", "ye", "clonedChildren", "dupedChildren", "duplicateBy", "opacity", "measure", "parentLength", "start", "childrenLength", "fe", "initialResize", "ue", "resize", "contentSize", "child", "index", "ref", "ref1", "ref2", "ref3", "ref4", "p", "LayoutGroup", "q", "i", "childIndex", "animateToValue", "transformRef", "initialTime", "prevTime", "xOrY", "isHover", "isInView", "useInView", "isReducedMotion", "useReducedMotion", "useAnimationFrame", "t", "delta", "wrap", "fadeDirection", "fadeWidthStart", "fadeWidthEnd", "fadeInsetStart", "clamp", "fadeInsetEnd", "fadeMask", "containerStyle", "u", "placeholderStyles", "emojiStyles", "titleStyles", "subtitleStyles", "addPropertyControls", "ControlType", "num", "min", "max", "e", "global", "t", "n", "__webpack_require__", "i", "o", "r", "a", "s", "window", "_seededRandom", "l", "chain", "c", "u", "f", "d", "p", "v", "y", "g", "x", "h", "b", "S", "w", "_initProperties", "m", "_", "A", "P", "C", "k", "M", "B", "I", "T", "R", "E", "V", "L", "_createCanvas", "loop", "_updateTiming", "_getPixelRatio", "_applyBackground", "_mean", "_getTexture", "q", "O", "D", "F", "H", "j", "W", "G", "N", "U", "z", "Q", "Y", "Z", "$", "J", "render", "addPoint", "addSegmentPoint", "opts", "makeWalls", "conainerBounding", "engine", "wallOptions", "Bodies", "n", "bottom", "top", "wLeft", "wRight", "makeBodies", "container", "world", "elements", "frictionOpts", "densityOpts", "conainerBounding", "stack", "n", "xx", "yy", "i", "x", "y", "width", "height", "maxLeft", "maxTop", "tLeft", "tTop", "Physics", "props", "_props_children", "engine", "e", "n", "containerBounding", "containerRef", "makeWalls", "render", "mouseConstraint", "mouse", "stack", "makeBodies", "update", "block", "i", "el", "x", "y", "p", "containerStyle", "bodyStyle", "addPropertyControls", "ControlType", "PhysicsFonts", "getFonts", "Physics", "MotionDivWithFX", "withFX", "motion", "cycleOrder", "serializationHash", "variantClassNames", "transition1", "animation", "transition2", "animation1", "transformTemplate1", "_", "t", "Transition", "value", "children", "config", "re", "MotionConfigContext", "transition", "contextValue", "se", "p", "Variants", "motion", "x", "getProps", "height", "id", "width", "props", "createLayoutDependency", "variants", "Component", "Y", "ref", "activeLocale", "setLocale", "useLocaleInfo", "style", "className", "layoutId", "variant", "restProps", "baseVariant", "classNames", "gestureHandlers", "gestureVariant", "setGestureState", "setVariant", "useVariantState", "cycleOrder", "variantClassNames", "layoutDependency", "ref1", "pe", "defaultLayoutId", "ae", "sharedStyleClassNames", "componentViewport", "useComponentViewport", "LayoutGroup", "cx", "serializationHash", "ComponentViewportProvider", "MotionDivWithFX", "u", "Physics", "SVG", "Image2", "css", "FramerBq2qNuwKW", "withCSS", "Bq2qNuwKW_default", "addFonts", "PhysicsFonts"]
}
