{
  "version": 3,
  "sources": ["ssg:https://ga.jspm.io/npm:lenis@1.1.2/dist/lenis.mjs", "ssg:https://framerusercontent.com/modules/Yppqt3Cs3Y8TZqvASnXl/PGrowqBrgWCViHduGfsA/SmoothScroll_Prod.js", "ssg:https://framerusercontent.com/modules/RXDHzTefAs258qknBHLB/hjJ9LqA58ePtw1yGqqLc/AMQpoE8N1.js", "ssg:https://ga.jspm.io/npm:matter-js@0.18.0/build/matter.js"],
  "sourcesContent": ["function clamp(t,e,i){return Math.max(t,Math.min(e,i))}class Animate{advance(t){if(!this.isRunning)return;let e=!1;if(this.lerp)this.value=function damp(t,e,i,s){return function lerp(t,e,i){return(1-i)*t+i*e}(t,e,1-Math.exp(-i*s))}(this.value,this.to,60*this.lerp,t),Math.round(this.value)===this.to&&(this.value=this.to,e=!0);else{this.currentTime+=t;const i=clamp(0,this.currentTime/this.duration,1);e=i>=1;const s=e?1:this.easing(i);this.value=this.from+(this.to-this.from)*s}e&&this.stop(),this.onUpdate?.(this.value,e)}stop(){this.isRunning=!1}fromTo(t,e,{lerp:i=.1,duration:s=1,easing:o=(t=>t),onStart:n,onUpdate:r}){this.from=this.value=t,this.to=e,this.lerp=i,this.duration=s,this.easing=o,this.currentTime=0,this.isRunning=!0,n?.(),this.onUpdate=r}}class Dimensions{constructor({wrapper:t,content:e,autoResize:i=!0,debounce:s=250}={}){this.wrapper=t,this.content=e,i&&(this.debouncedResize=function debounce(t,e){let i;return function(){let s=arguments,o=this;clearTimeout(i),i=setTimeout((function(){t.apply(o,s)}),e)}}(this.resize,s),this.wrapper===window?window.addEventListener(\"resize\",this.debouncedResize,!1):(this.wrapperResizeObserver=new ResizeObserver(this.debouncedResize),this.wrapperResizeObserver.observe(this.wrapper)),this.contentResizeObserver=new ResizeObserver(this.debouncedResize),this.contentResizeObserver.observe(this.content)),this.resize()}destroy(){this.wrapperResizeObserver?.disconnect(),this.contentResizeObserver?.disconnect(),window.removeEventListener(\"resize\",this.debouncedResize,!1)}resize=()=>{this.onWrapperResize(),this.onContentResize()};onWrapperResize=()=>{this.wrapper===window?(this.width=window.innerWidth,this.height=window.innerHeight):(this.width=this.wrapper.clientWidth,this.height=this.wrapper.clientHeight)};onContentResize=()=>{this.wrapper===window?(this.scrollHeight=this.content.scrollHeight,this.scrollWidth=this.content.scrollWidth):(this.scrollHeight=this.wrapper.scrollHeight,this.scrollWidth=this.wrapper.scrollWidth)};get limit(){return{x:this.scrollWidth-this.width,y:this.scrollHeight-this.height}}}class Emitter{constructor(){this.events={}}emit(t,...e){let i=this.events[t]||[];for(let t=0,s=i.length;t<s;t++)i[t](...e)}on(t,e){return this.events[t]?.push(e)||(this.events[t]=[e]),()=>{this.events[t]=this.events[t]?.filter((t=>e!==t))}}off(t,e){this.events[t]=this.events[t]?.filter((t=>e!==t))}destroy(){this.events={}}}const t=100/6;class VirtualScroll{constructor(t,{wheelMultiplier:e=1,touchMultiplier:i=1}){this.element=t,this.wheelMultiplier=e,this.touchMultiplier=i,this.touchStart={x:null,y:null},this.emitter=new Emitter,window.addEventListener(\"resize\",this.onWindowResize,!1),this.onWindowResize(),this.element.addEventListener(\"wheel\",this.onWheel,{passive:!1}),this.element.addEventListener(\"touchstart\",this.onTouchStart,{passive:!1}),this.element.addEventListener(\"touchmove\",this.onTouchMove,{passive:!1}),this.element.addEventListener(\"touchend\",this.onTouchEnd,{passive:!1})}on(t,e){return this.emitter.on(t,e)}destroy(){this.emitter.destroy(),window.removeEventListener(\"resize\",this.onWindowResize,!1),this.element.removeEventListener(\"wheel\",this.onWheel,{passive:!1}),this.element.removeEventListener(\"touchstart\",this.onTouchStart,{passive:!1}),this.element.removeEventListener(\"touchmove\",this.onTouchMove,{passive:!1}),this.element.removeEventListener(\"touchend\",this.onTouchEnd,{passive:!1})}onTouchStart=t=>{const{clientX:e,clientY:i}=t.targetTouches?t.targetTouches[0]:t;this.touchStart.x=e,this.touchStart.y=i,this.lastDelta={x:0,y:0},this.emitter.emit(\"scroll\",{deltaX:0,deltaY:0,event:t})};onTouchMove=t=>{const{clientX:e,clientY:i}=t.targetTouches?t.targetTouches[0]:t,s=-(e-this.touchStart.x)*this.touchMultiplier,o=-(i-this.touchStart.y)*this.touchMultiplier;this.touchStart.x=e,this.touchStart.y=i,this.lastDelta={x:s,y:o},this.emitter.emit(\"scroll\",{deltaX:s,deltaY:o,event:t})};onTouchEnd=t=>{this.emitter.emit(\"scroll\",{deltaX:this.lastDelta.x,deltaY:this.lastDelta.y,event:t})};onWheel=e=>{let{deltaX:i,deltaY:s,deltaMode:o}=e;i*=1===o?t:2===o?this.windowWidth:1,s*=1===o?t:2===o?this.windowHeight:1,i*=this.wheelMultiplier,s*=this.wheelMultiplier,this.emitter.emit(\"scroll\",{deltaX:i,deltaY:s,event:e})};onWindowResize=()=>{this.windowWidth=window.innerWidth,this.windowHeight=window.innerHeight}}class Lenis{constructor({wrapper:t=window,content:e=document.documentElement,wheelEventsTarget:i=t,eventsTarget:s=i,smoothWheel:o=!0,syncTouch:n=!1,syncTouchLerp:r=.075,touchInertiaMultiplier:l=35,duration:h,easing:a=(t=>Math.min(1,1.001-Math.pow(2,-10*t))),lerp:c=!h&&.1,infinite:u=!1,orientation:d=\"vertical\",gestureOrientation:p=\"vertical\",touchMultiplier:m=1,wheelMultiplier:v=1,autoResize:g=!0,prevent:w=!1,__experimental__naiveDimensions:S=!1}={}){this.__isScrolling=!1,this.__isStopped=!1,this.__isLocked=!1,this.onVirtualScroll=({deltaX:t,deltaY:e,event:i})=>{if(i.ctrlKey)return;const s=i.type.includes(\"touch\"),o=i.type.includes(\"wheel\");this.isTouching=\"touchstart\"===i.type||\"touchmove\"===i.type;if(this.options.syncTouch&&s&&\"touchstart\"===i.type&&!this.isStopped&&!this.isLocked)return void this.reset();const n=0===t&&0===e,r=\"vertical\"===this.options.gestureOrientation&&0===e||\"horizontal\"===this.options.gestureOrientation&&0===t;if(n||r)return;let l=i.composedPath();l=l.slice(0,l.indexOf(this.rootElement));const h=this.options.prevent;if(l.find((t=>{var e,i,n,r,l;return(\"function\"==typeof h?null==h?void 0:h(t):h)||(null===(e=t.hasAttribute)||void 0===e?void 0:e.call(t,\"data-lenis-prevent\"))||s&&(null===(i=t.hasAttribute)||void 0===i?void 0:i.call(t,\"data-lenis-prevent-touch\"))||o&&(null===(n=t.hasAttribute)||void 0===n?void 0:n.call(t,\"data-lenis-prevent-wheel\"))||(null===(r=t.classList)||void 0===r?void 0:r.contains(\"lenis\"))&&!(null===(l=t.classList)||void 0===l?void 0:l.contains(\"lenis-stopped\"))})))return;if(this.isStopped||this.isLocked)return void i.preventDefault();if(!(this.options.syncTouch&&s||this.options.smoothWheel&&o))return this.isScrolling=\"native\",void this.animate.stop();i.preventDefault();let a=e;\"both\"===this.options.gestureOrientation?a=Math.abs(e)>Math.abs(t)?e:t:\"horizontal\"===this.options.gestureOrientation&&(a=t);const c=s&&this.options.syncTouch,u=s&&\"touchend\"===i.type&&Math.abs(a)>5;u&&(a=this.velocity*this.options.touchInertiaMultiplier),this.scrollTo(this.targetScroll+a,Object.assign({programmatic:!1},c?{lerp:u?this.options.syncTouchLerp:1}:{lerp:this.options.lerp,duration:this.options.duration,easing:this.options.easing}))},this.onNativeScroll=()=>{if(clearTimeout(this.__resetVelocityTimeout),delete this.__resetVelocityTimeout,this.__preventNextNativeScrollEvent)delete this.__preventNextNativeScrollEvent;else if(!1===this.isScrolling||\"native\"===this.isScrolling){const t=this.animatedScroll;this.animatedScroll=this.targetScroll=this.actualScroll,this.lastVelocity=this.velocity,this.velocity=this.animatedScroll-t,this.direction=Math.sign(this.animatedScroll-t),this.isScrolling=\"native\",this.emit(),0!==this.velocity&&(this.__resetVelocityTimeout=setTimeout((()=>{this.lastVelocity=this.velocity,this.velocity=0,this.isScrolling=!1,this.emit()}),400))}},window.lenisVersion=\"1.1.2\",t!==document.documentElement&&t!==document.body||(t=window),this.options={wrapper:t,content:e,wheelEventsTarget:i,eventsTarget:s,smoothWheel:o,syncTouch:n,syncTouchLerp:r,touchInertiaMultiplier:l,duration:h,easing:a,lerp:c,infinite:u,gestureOrientation:p,orientation:d,touchMultiplier:m,wheelMultiplier:v,autoResize:g,prevent:w,__experimental__naiveDimensions:S},this.animate=new Animate,this.emitter=new Emitter,this.dimensions=new Dimensions({wrapper:t,content:e,autoResize:g}),this.updateClassName(),this.userData={},this.time=0,this.velocity=this.lastVelocity=0,this.isLocked=!1,this.isStopped=!1,this.isScrolling=!1,this.targetScroll=this.animatedScroll=this.actualScroll,this.options.wrapper.addEventListener(\"scroll\",this.onNativeScroll,!1),this.virtualScroll=new VirtualScroll(s,{touchMultiplier:m,wheelMultiplier:v}),this.virtualScroll.on(\"scroll\",this.onVirtualScroll)}destroy(){this.emitter.destroy(),this.options.wrapper.removeEventListener(\"scroll\",this.onNativeScroll,!1),this.virtualScroll.destroy(),this.dimensions.destroy(),this.cleanUpClassName()}on(t,e){return this.emitter.on(t,e)}off(t,e){return this.emitter.off(t,e)}setScroll(t){this.isHorizontal?this.rootElement.scrollLeft=t:this.rootElement.scrollTop=t}resize(){this.dimensions.resize()}emit({userData:t={}}={}){this.userData=t,this.emitter.emit(\"scroll\",this),this.userData={}}reset(){this.isLocked=!1,this.isScrolling=!1,this.animatedScroll=this.targetScroll=this.actualScroll,this.lastVelocity=this.velocity=0,this.animate.stop()}start(){this.isStopped&&(this.isStopped=!1,this.reset())}stop(){this.isStopped||(this.isStopped=!0,this.animate.stop(),this.reset())}raf(t){const e=t-(this.time||t);this.time=t,this.animate.advance(.001*e)}scrollTo(t,{offset:e=0,immediate:i=!1,lock:s=!1,duration:o=this.options.duration,easing:n=this.options.easing,lerp:r=!o&&this.options.lerp,onStart:l,onComplete:h,force:a=!1,programmatic:c=!0,userData:u={}}={}){if(!this.isStopped&&!this.isLocked||a){if([\"top\",\"left\",\"start\"].includes(t))t=0;else if([\"bottom\",\"right\",\"end\"].includes(t))t=this.limit;else{let i;if(\"string\"==typeof t?i=document.querySelector(t):(null==t?void 0:t.nodeType)&&(i=t),i){if(this.options.wrapper!==window){const t=this.options.wrapper.getBoundingClientRect();e-=this.isHorizontal?t.left:t.top}const s=i.getBoundingClientRect();t=(this.isHorizontal?s.left:s.top)+this.animatedScroll}}if(\"number\"==typeof t){if(t+=e,t=Math.round(t),this.options.infinite?c&&(this.targetScroll=this.animatedScroll=this.scroll):t=clamp(0,t,this.limit),i)return this.animatedScroll=this.targetScroll=t,this.setScroll(this.scroll),this.reset(),void(null==h||h(this));t!==this.targetScroll&&(c||(this.targetScroll=t),this.animate.fromTo(this.animatedScroll,t,{duration:o,easing:n,lerp:r,onStart:()=>{s&&(this.isLocked=!0),this.isScrolling=\"smooth\",null==l||l(this)},onUpdate:(t,e)=>{this.isScrolling=\"smooth\",this.lastVelocity=this.velocity,this.velocity=t-this.animatedScroll,this.direction=Math.sign(this.velocity),this.animatedScroll=t,this.setScroll(this.scroll),c&&(this.targetScroll=t),e||this.emit({userData:u}),e&&(this.reset(),this.emit({userData:u}),null==h||h(this),this.__preventNextNativeScrollEvent=!0)}}))}}}get rootElement(){return this.options.wrapper===window?document.documentElement:this.options.wrapper}get limit(){return this.options.__experimental__naiveDimensions?this.isHorizontal?this.rootElement.scrollWidth-this.rootElement.clientWidth:this.rootElement.scrollHeight-this.rootElement.clientHeight:this.dimensions.limit[this.isHorizontal?\"x\":\"y\"]}get isHorizontal(){return\"horizontal\"===this.options.orientation}get actualScroll(){return this.isHorizontal?this.rootElement.scrollLeft:this.rootElement.scrollTop}get scroll(){return this.options.infinite?function modulo(t,e){return(t%e+e)%e}(this.animatedScroll,this.limit):this.animatedScroll}get progress(){return 0===this.limit?1:this.scroll/this.limit}get isScrolling(){return this.__isScrolling}set isScrolling(t){this.__isScrolling!==t&&(this.__isScrolling=t,this.updateClassName())}get isStopped(){return this.__isStopped}set isStopped(t){this.__isStopped!==t&&(this.__isStopped=t,this.updateClassName())}get isLocked(){return this.__isLocked}set isLocked(t){this.__isLocked!==t&&(this.__isLocked=t,this.updateClassName())}get isSmooth(){return\"smooth\"===this.isScrolling}get className(){let t=\"lenis\";return this.isStopped&&(t+=\" lenis-stopped\"),this.isLocked&&(t+=\" lenis-locked\"),this.isScrolling&&(t+=\" lenis-scrolling\"),\"smooth\"===this.isScrolling&&(t+=\" lenis-smooth\"),t}updateClassName(){this.cleanUpClassName(),this.rootElement.className=`${this.rootElement.className} ${this.className}`.trim()}cleanUpClassName(){this.rootElement.className=this.rootElement.className.replace(/lenis(-\\w+)?/g,\"\").trim()}}export{Lenis as default};\n//# sourceMappingURL=lenis.mjs.map\n", "import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,withCSS}from\"framer\";import Lenis from\"lenis\";import{useEffect,useRef}from\"react\";function SmoothScrollComponent(props){const{intensity}=props;const lenis=useRef(null);useEffect(()=>{if(lenis.current){try{lenis.current.scrollTo(0,{immediate:true});}catch(error){console.error(\"Error scrolling to top:\",error);}}},[lenis]);// Watch for stop scroll elements\nuseEffect(()=>{const checkForStopScroll=()=>{try{const stopScrollElement=document.querySelector(\"[data-frameruni-stop-scroll]\");const htmlElement=document.documentElement;const hasHiddenOverflow=htmlElement&&htmlElement.style&&htmlElement.style.overflow===\"hidden\";if(lenis.current){if(stopScrollElement||hasHiddenOverflow){lenis.current.stop();}else{lenis.current.start();}}}catch(error){console.error(\"Error in checkForStopScroll:\",error);}};// Initial check\ncheckForStopScroll();// Set up observers\nlet stopScrollObserver;let htmlStyleObserver;try{stopScrollObserver=new MutationObserver(checkForStopScroll);htmlStyleObserver=new MutationObserver(checkForStopScroll);// Observe document for data-frameruni-stop-scroll attribute\nif(document&&document.documentElement){stopScrollObserver.observe(document.documentElement,{childList:true,subtree:true,attributes:true,attributeFilter:[\"data-frameruni-stop-scroll\"]});// Observe only the HTML element for style changes\nhtmlStyleObserver.observe(document.documentElement,{attributes:true,attributeFilter:[\"style\"]});}}catch(error){console.error(\"Error setting up observers:\",error);}return()=>{try{if(stopScrollObserver)stopScrollObserver.disconnect();if(htmlStyleObserver)htmlStyleObserver.disconnect();}catch(error){console.error(\"Error disconnecting observers:\",error);}};},[]);useEffect(()=>{try{if(!document)return;const allElements=document.getElementsByTagName(\"*\");for(let i=0;i<allElements.length;i++){const element=allElements[i];if(!element)continue;try{const computedStyle=window.getComputedStyle(element);if(computedStyle&&computedStyle.getPropertyValue(\"overflow\")===\"auto\"){element.setAttribute(\"data-lenis-prevent\",\"true\");}}catch(styleError){console.error(\"Error getting computed style:\",styleError);}}}catch(error){console.error(\"Error in overflow detection:\",error);}},[]);useEffect(()=>{try{if(typeof Lenis!==\"function\"){console.error(\"Lenis is not available\");return;}lenis.current=new Lenis({duration:(intensity||10)/10});const raf=time=>{if(lenis.current){try{lenis.current.raf(time);requestAnimationFrame(raf);}catch(error){console.error(\"Error in animation frame:\",error);}}};const animationId=requestAnimationFrame(raf);return()=>{cancelAnimationFrame(animationId);if(lenis.current){try{lenis.current.destroy();lenis.current=null;}catch(error){console.error(\"Error destroying Lenis:\",error);}}};}catch(error){console.error(\"Error initializing Lenis:\",error);return()=>{};}},[intensity]);//https://github.com/darkroomengineering/lenis?tab=readme-ov-file#anchor-links\nuseEffect(()=>{try{if(!document||!lenis.current)return;// Get all anchor links and store click handlers with their targets\nconst anchorLinksData=Array.from(document.querySelectorAll(\"a[href]\")||[]).filter(element=>{if(!element)return false;const anchor=element;if(!anchor.href)return false;// Only handle internal anchor links\nconst isInternalLink=anchor.href.startsWith(window.location.origin)||anchor.href.startsWith(\"./\")||anchor.href.startsWith(\"/\");const hasHash=anchor.href.includes(\"#\");return isInternalLink&&hasHash;}).map(anchor=>{try{const anchorElement=anchor;const href=anchorElement.href.includes(\"#\")?`#${anchorElement.href.split(\"#\").pop()}`:\"\";const decodedHref=href?decodeURIComponent(href):\"\";let scrollMargin=0;try{if(decodedHref){const targetElement=document.querySelector(decodedHref);if(targetElement){const marginStyle=window.getComputedStyle(targetElement).scrollMarginTop;scrollMargin=marginStyle?parseInt(marginStyle)||0:0;}}}catch(targetError){console.error(\"Error finding target element:\",targetError);}return{href,scrollMargin,anchorElement:anchorElement};}catch(anchorError){console.error(\"Error processing anchor:\",anchorError);return null;}}).filter(Boolean);const handleClick=(e,href,scrollMargin)=>{try{if(e&&e.preventDefault)e.preventDefault();if(lenis.current&&href){lenis.current.scrollTo(href,{offset:-(scrollMargin||0)});}}catch(error){console.error(\"Error in anchor click handler:\",error);}};const handlers=anchorLinksData.map(({href,scrollMargin})=>e=>handleClick(e,href,scrollMargin));anchorLinksData.forEach(({anchorElement},index)=>{if(anchorElement&&handlers[index]){anchorElement.addEventListener(\"click\",handlers[index]);}});return()=>{anchorLinksData.forEach(({anchorElement},index)=>{if(anchorElement&&handlers[index]){anchorElement.removeEventListener(\"click\",handlers[index]);}});};}catch(error){console.error(\"Error setting up anchor links:\",error);return()=>{};}},[lenis]);return /*#__PURE__*/_jsx(\"div\",{style:props.style});}/**\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n *\n * @framerDisableUnlink\n */const SmoothScroll=withCSS(SmoothScrollComponent,[\"html.lenis { height: auto; }\",\".lenis.lenis-smooth { scroll-behavior: auto !important; }\",\".lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }\",\".lenis.lenis-stopped { overflow: hidden; }\",\".lenis.lenis-scrolling iframe { pointer-events: none; }\"],\"\");export default SmoothScroll;SmoothScroll.displayName=\"Smooth Scroll\";addPropertyControls(SmoothScroll,{intensity:{title:\"Intensity\",type:ControlType.Number,defaultValue:10,min:0,description:\"More components at [Framer University](https://frameruni.link/cc).\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SmoothScroll\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"auto\",\"framerDisableUnlink\":\"\",\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SmoothScroll_Prod.map", "// Generated by Framer (f712822)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getLoadingLazyAtYPosition,Image,SVG,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";const cycleOrder=[\"WWI0BwrkZ\",\"Ye9UnfRYD\",\"URJNyTcFB\",\"D04zqwZ4k\",\"g2dg8nB8i\",\"M1gqRpJS7\",\"TRqbGwyhf\",\"b0oKTfXCF\",\"IEH6LXv3q\",\"dpw0FRYaz\",\"bK6qvfxmN\",\"J8J3zuEVP\",\"g6yjgdtAS\",\"W7lh_QHPd\",\"OzmLeWv_Z\",\"fXKmCR9Ne\",\"nhEbGL91s\",\"Ez6KswtWc\",\"CuhveJylk\",\"OPwHiUh9I\"];const serializationHash=\"framer-n3Och\";const variantClassNames={b0oKTfXCF:\"framer-v-4xtg49\",bK6qvfxmN:\"framer-v-su3ixc\",CuhveJylk:\"framer-v-5vp2bi\",D04zqwZ4k:\"framer-v-48fl4s\",dpw0FRYaz:\"framer-v-cfl5m4\",Ez6KswtWc:\"framer-v-1fokzki\",fXKmCR9Ne:\"framer-v-dewtid\",g2dg8nB8i:\"framer-v-187b0ru\",g6yjgdtAS:\"framer-v-17zj2fe\",IEH6LXv3q:\"framer-v-12ixfz9\",J8J3zuEVP:\"framer-v-1g9ajrc\",M1gqRpJS7:\"framer-v-142xvre\",nhEbGL91s:\"framer-v-1jbxufu\",OPwHiUh9I:\"framer-v-6hggz1\",OzmLeWv_Z:\"framer-v-xw1hxb\",TRqbGwyhf:\"framer-v-1mvg1n9\",URJNyTcFB:\"framer-v-rvx7gm\",W7lh_QHPd:\"framer-v-193tzpn\",WWI0BwrkZ:\"framer-v-1h4mof\",Ye9UnfRYD:\"framer-v-ky4rnt\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"After effects\":\"W7lh_QHPd\",Audition:\"OzmLeWv_Z\",css:\"nhEbGL91s\",Figjam:\"g2dg8nB8i\",Figma:\"WWI0BwrkZ\",Framer:\"URJNyTcFB\",Html:\"fXKmCR9Ne\",Illustrator:\"J8J3zuEVP\",javasctopt:\"Ez6KswtWc\",Maze:\"M1gqRpJS7\",Notion:\"b0oKTfXCF\",Photoshop:\"bK6qvfxmN\",Preely:\"IEH6LXv3q\",PremierPro:\"g6yjgdtAS\",qualtrics:\"CuhveJylk\",Sketch:\"Ye9UnfRYD\",Slack:\"TRqbGwyhf\",tableau:\"OPwHiUh9I\",Usertesting:\"dpw0FRYaz\",Webflow:\"D04zqwZ4k\"};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"WWI0BwrkZ\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"WWI0BwrkZ\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if([\"Ye9UnfRYD\",\"URJNyTcFB\",\"D04zqwZ4k\",\"g2dg8nB8i\",\"M1gqRpJS7\",\"TRqbGwyhf\",\"b0oKTfXCF\",\"IEH6LXv3q\",\"dpw0FRYaz\",\"bK6qvfxmN\",\"J8J3zuEVP\",\"g6yjgdtAS\",\"W7lh_QHPd\",\"OzmLeWv_Z\",\"fXKmCR9Ne\",\"nhEbGL91s\",\"Ez6KswtWc\",\"CuhveJylk\",\"OPwHiUh9I\"].includes(baseVariant))return false;return true;};const isDisplayed1=()=>{if(baseVariant===\"M1gqRpJS7\")return true;return false;};const isDisplayed2=()=>{if(baseVariant===\"g2dg8nB8i\")return true;return false;};const isDisplayed3=()=>{if(baseVariant===\"URJNyTcFB\")return true;return false;};const isDisplayed4=()=>{if(baseVariant===\"Ye9UnfRYD\")return true;return false;};const isDisplayed5=()=>{if(baseVariant===\"D04zqwZ4k\")return true;return false;};const isDisplayed6=()=>{if(baseVariant===\"TRqbGwyhf\")return true;return false;};const isDisplayed7=()=>{if(baseVariant===\"b0oKTfXCF\")return true;return false;};const isDisplayed8=()=>{if(baseVariant===\"IEH6LXv3q\")return true;return false;};const isDisplayed9=()=>{if(baseVariant===\"dpw0FRYaz\")return true;return false;};const isDisplayed10=()=>{if(baseVariant===\"J8J3zuEVP\")return true;return false;};const isDisplayed11=()=>{if(baseVariant===\"bK6qvfxmN\")return true;return false;};const isDisplayed12=()=>{if(baseVariant===\"g6yjgdtAS\")return true;return false;};const isDisplayed13=()=>{if(baseVariant===\"W7lh_QHPd\")return true;return false;};const isDisplayed14=()=>{if(baseVariant===\"OzmLeWv_Z\")return true;return false;};const isDisplayed15=()=>{if(baseVariant===\"fXKmCR9Ne\")return true;return false;};const isDisplayed16=()=>{if(baseVariant===\"nhEbGL91s\")return true;return false;};const isDisplayed17=()=>{if(baseVariant===\"Ez6KswtWc\")return true;return false;};const isDisplayed18=()=>{if(baseVariant===\"CuhveJylk\")return true;return false;};const isDisplayed19=()=>{if(baseVariant===\"OPwHiUh9I\")return true;return false;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1h4mof\",className,classNames),\"data-framer-name\":\"Figma\",layoutDependency:layoutDependency,layoutId:\"WWI0BwrkZ\",ref:refBinding,style:{...style},...addPropertyOverrides({b0oKTfXCF:{\"data-framer-name\":\"Notion\"},bK6qvfxmN:{\"data-framer-name\":\"Photoshop\"},CuhveJylk:{\"data-framer-name\":\"qualtrics\"},D04zqwZ4k:{\"data-framer-name\":\"Webflow\"},dpw0FRYaz:{\"data-framer-name\":\"Usertesting\"},Ez6KswtWc:{\"data-framer-name\":\"javasctopt\"},fXKmCR9Ne:{\"data-framer-name\":\"Html\"},g2dg8nB8i:{\"data-framer-name\":\"Figjam\"},g6yjgdtAS:{\"data-framer-name\":\"PremierPro\"},IEH6LXv3q:{\"data-framer-name\":\"Preely\"},J8J3zuEVP:{\"data-framer-name\":\"Illustrator\"},M1gqRpJS7:{\"data-framer-name\":\"Maze\"},nhEbGL91s:{\"data-framer-name\":\"css\"},OPwHiUh9I:{\"data-framer-name\":\"tableau\"},OzmLeWv_Z:{\"data-framer-name\":\"Audition\"},TRqbGwyhf:{\"data-framer-name\":\"Slack\"},URJNyTcFB:{\"data-framer-name\":\"Framer\"},W7lh_QHPd:{\"data-framer-name\":\"After effects\"},Ye9UnfRYD:{\"data-framer-name\":\"Sketch\"}},baseVariant,gestureVariant),children:[isDisplayed()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-1l0wa3s\",\"data-framer-name\":\"Figma\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:64,intrinsicWidth:64,layoutDependency:layoutDependency,layoutId:\"F4TgUsvuw\",svg:'<svg width=\"64\" height=\"64\" viewBox=\"0 0 64 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<circle cx=\"32\" cy=\"32\" r=\"32\" fill=\"#242938\"/>\\n<g clip-path=\"url(#clip0_513_104)\">\\n<path d=\"M40.5 16H23.5C19.3579 16 16 19.3579 16 23.5V40.5C16 44.6421 19.3579 48 23.5 48H40.5C44.6421 48 48 44.6421 48 40.5V23.5C48 19.3579 44.6421 16 40.5 16Z\" fill=\"#242938\"/>\\n<mask id=\"mask0_513_104\" style=\"mask-type:luminance\" maskUnits=\"userSpaceOnUse\" x=\"23\" y=\"19\" width=\"18\" height=\"26\">\\n<path d=\"M23.625 19.5H40.295V44.5H23.625V19.5Z\" fill=\"white\"/>\\n</mask>\\n<g mask=\"url(#mask0_513_104)\">\\n<path d=\"M27.7937 44.4999C30.0937 44.4999 31.9603 42.6333 31.9603 40.3333V36.1665H27.7937C25.4937 36.1665 23.627 38.0333 23.627 40.3333C23.627 42.6333 25.4937 44.4999 27.7937 44.4999Z\" fill=\"#0ACF83\"/>\\n<path d=\"M23.627 32.0001C23.627 29.7001 25.4937 27.8335 27.7937 27.8335H31.9603V36.1667H27.7937C25.4937 36.1667 23.627 34.3001 23.627 32.0001Z\" fill=\"#A259FF\"/>\\n<path d=\"M23.627 23.6666C23.627 21.3666 25.4937 19.5 27.7937 19.5H31.9603V27.8334H27.7937C25.4937 27.8334 23.627 25.9666 23.627 23.6666Z\" fill=\"#F24E1E\"/>\\n<path d=\"M31.96 19.5H36.1266C38.4266 19.5 40.2933 21.3666 40.2933 23.6666C40.2933 25.9666 38.4266 27.8334 36.1266 27.8334H31.96V19.5Z\" fill=\"#FF7262\"/>\\n<path d=\"M40.2933 32.0001C40.2933 34.3001 38.4266 36.1667 36.1266 36.1667C33.8266 36.1667 31.96 34.3001 31.96 32.0001C31.96 29.7001 33.8266 27.8335 36.1266 27.8335C38.4266 27.8335 40.2933 29.7001 40.2933 32.0001Z\" fill=\"#1ABCFE\"/>\\n</g>\\n</g>\\n<defs>\\n<clipPath id=\"clip0_513_104\">\\n<rect width=\"32\" height=\"32\" fill=\"white\" transform=\"translate(16 16)\"/>\\n</clipPath>\\n</defs>\\n</svg>\\n',withExternalLayout:true}),isDisplayed1()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-1frjsc3\",\"data-framer-name\":\"Maze\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:60,intrinsicWidth:60,layoutDependency:layoutDependency,layoutId:\"uX7ifTszB\",svg:'<svg width=\"60\" height=\"60\" viewBox=\"0 0 60 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<circle cx=\"30\" cy=\"30\" r=\"30\" fill=\"#0465F4\"/>\\n<path d=\"M14.7084 36.3939C14.2068 35.8986 13.8086 35.3086 13.5368 34.6583C13.265 34.0079 13.125 33.3101 13.125 32.6052C13.125 31.9003 13.265 31.2025 13.5368 30.5521C13.8086 29.9017 14.2068 29.3118 14.7084 28.8165L20.4431 23.1332C21.2963 22.2903 22.404 21.7529 23.5942 21.6044C24.7843 21.4559 25.9902 21.7047 27.0244 22.312C27.6656 22.6917 27.66 23.5578 27.1327 24.0809C26.6053 24.6039 25.7433 24.5589 25.0275 24.3508C24.5621 24.2145 24.0687 24.2053 23.5985 24.3242C23.1284 24.4432 22.6987 24.6859 22.3542 25.0272L16.6195 30.7105C16.3687 30.9582 16.1696 31.2532 16.0336 31.5785C15.8977 31.9037 15.8277 32.2527 15.8277 32.6052C15.8277 32.9577 15.8977 33.3067 16.0336 33.6319C16.1696 33.9571 16.3687 34.2522 16.6195 34.4999C17.6742 35.546 19.387 35.546 20.4431 34.4999L31.9111 23.1332C32.9296 22.1281 34.303 21.5645 35.734 21.5645C37.165 21.5645 38.5384 22.1281 39.5569 23.1332L45.2916 28.8165C45.7932 29.3118 46.1914 29.9017 46.4632 30.5521C46.735 31.2025 46.875 31.9003 46.875 32.6052C46.875 33.3101 46.735 34.0079 46.4632 34.6583C46.1914 35.3086 45.7932 35.8986 45.2916 36.3939C44.2731 37.3989 42.8997 37.9625 41.4687 37.9625C40.0377 37.9625 38.6643 37.3989 37.6458 36.3939L35.7333 34.4999L33.3455 36.8677C32.4921 37.7103 31.3843 38.2475 30.1942 38.3958C29.004 38.544 27.7982 38.295 26.7642 37.6874C26.1216 37.3106 26.1272 36.4431 26.6545 35.92C27.1833 35.397 28.0439 35.4419 28.7611 35.65C29.2263 35.7861 29.7194 35.7952 30.1893 35.6762C30.6591 35.5573 31.0886 35.3147 31.433 34.9737L33.8911 32.537C34.382 32.0523 35.0441 31.7805 35.734 31.7805C36.4239 31.7805 37.086 32.0523 37.5769 32.537L39.5569 34.4999C40.6116 35.546 42.3244 35.546 43.3805 34.4999C43.6313 34.2522 43.8304 33.9571 43.9664 33.6319C44.1023 33.3067 44.1723 32.9577 44.1723 32.6052C44.1723 32.2527 44.1023 31.9037 43.9664 31.5785C43.8304 31.2532 43.6313 30.9582 43.3805 30.7105L37.6458 25.0272C37.1365 24.5244 36.4497 24.2425 35.734 24.2425C35.0183 24.2425 34.3315 24.5244 33.8222 25.0272L22.3542 36.3939C21.3357 37.3989 19.9623 37.9625 18.5313 37.9625C17.1003 37.9625 15.7269 37.3989 14.7084 36.3939Z\" fill=\"white\"/>\\n</svg>\\n',withExternalLayout:true}),isDisplayed2()&&/*#__PURE__*/_jsxs(motion.div,{className:\"framer-14gzpg6\",\"data-framer-name\":\"Figjam\",layoutDependency:layoutDependency,layoutId:\"Tv5oYIdhV\",children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-b2dzc4\",\"data-framer-name\":\"Ellipse 26\",layoutDependency:layoutDependency,layoutId:\"lvuI5JBXo\",style:{backgroundColor:\"rgb(255, 255, 255)\",borderBottomLeftRadius:\"100%\",borderBottomRightRadius:\"100%\",borderTopLeftRadius:\"100%\",borderTopRightRadius:\"100%\"}}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",src:\"https://framerusercontent.com/images/VqeOxkAbLaWlBF9OZgyp6F4TJ6M.png\"},className:\"framer-qbz21d\",\"data-framer-name\":\"image 23\",layoutDependency:layoutDependency,layoutId:\"EBFKv9twV\",...addPropertyOverrides({g2dg8nB8i:{background:{alt:\"\",fit:\"fill\",loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+0+(((componentViewport?.height||64)-0-64)/2+0+0)+10),src:\"https://framerusercontent.com/images/VqeOxkAbLaWlBF9OZgyp6F4TJ6M.png\"}}},baseVariant,gestureVariant)})]}),isDisplayed3()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-ol546m\",\"data-framer-name\":\"Framer\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:64,intrinsicWidth:64,layoutDependency:layoutDependency,layoutId:\"kUkYlzvT8\",svg:'<svg width=\"64\" height=\"64\" viewBox=\"0 0 64 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<circle cx=\"32\" cy=\"32\" r=\"32\" fill=\"white\"/>\\n<g clip-path=\"url(#clip0_513_99)\">\\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M32.0006 26.65H42.8506V16H21.3506V16.1L32.0006 26.65Z\" fill=\"#67DBFF\"/>\\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M32.0004 26.6499H21.1504V37.2999H42.6504V37.1999L32.0004 26.6499Z\" fill=\"#01A3FF\"/>\\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M21.1504 37.25H31.9004V48L21.1504 37.25Z\" fill=\"#0162FF\"/>\\n</g>\\n<defs>\\n<clipPath id=\"clip0_513_99\">\\n<rect width=\"32\" height=\"32\" fill=\"white\" transform=\"translate(16 16)\"/>\\n</clipPath>\\n</defs>\\n</svg>\\n',withExternalLayout:true}),isDisplayed4()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-l8baos\",\"data-framer-name\":\"Sketch\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:64,intrinsicWidth:64,layoutDependency:layoutDependency,layoutId:\"GQ6zZDX6I\",svg:'<svg width=\"64\" height=\"64\" viewBox=\"0 0 64 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<circle cx=\"32\" cy=\"32\" r=\"32\" fill=\"#2C1F50\"/>\\n<g clip-path=\"url(#clip0_513_102)\">\\n<path d=\"M22.9825 18.5835L32 17.6367L41.0175 18.5837L48 27.8792L32 46.3632L16 27.8792L22.9825 18.5835Z\" fill=\"#FDB300\"/>\\n<path d=\"M22.4812 27.8794L32 46.3634L16 27.8794H22.4812ZM41.5187 27.8794L32 46.3634L48 27.8794H41.5187Z\" fill=\"#EA6C00\"/>\\n<path d=\"M22.4814 27.8794H41.5189L32.0002 46.3634L22.4814 27.8794Z\" fill=\"#FDAD00\"/>\\n<path d=\"M32.0002 17.6367L22.9827 18.5835L22.4814 27.8792L32.0002 17.6367ZM32.0002 17.6367L41.0177 18.5835L41.5189 27.8792L32.0002 17.6367Z\" fill=\"#FDD231\"/>\\n<path d=\"M48.0001 27.8792L41.0176 18.5835L41.5188 27.8792H48.0001Z\" fill=\"#FDAD00\"/>\\n<path d=\"M32.0002 17.6367L22.4814 27.8792H41.5189L32.0002 17.6367Z\" fill=\"#FEEEB7\"/>\\n<path d=\"M16 27.8792L22.9825 18.5835L22.4812 27.8792H16Z\" fill=\"#FDAD00\"/>\\n</g>\\n<defs>\\n<clipPath id=\"clip0_513_102\">\\n<rect width=\"32\" height=\"32\" fill=\"white\" transform=\"translate(16 16)\"/>\\n</clipPath>\\n</defs>\\n</svg>\\n',withExternalLayout:true}),isDisplayed5()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-8faftq\",\"data-framer-name\":\"Webflow\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:64,intrinsicWidth:64,layoutDependency:layoutDependency,layoutId:\"zTHYcIcQl\",svg:'<svg width=\"64\" height=\"64\" viewBox=\"0 0 64 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<circle cx=\"32\" cy=\"32\" r=\"32\" fill=\"#4353FF\"/>\\n<g clip-path=\"url(#clip0_513_103)\">\\n<path d=\"M43.6875 10H20.3125C14.6171 10 10 14.6171 10 20.3125V43.6875C10 49.3829 14.6171 54 20.3125 54H43.6875C49.3829 54 54 49.3829 54 43.6875V20.3125C54 14.6171 49.3829 10 43.6875 10Z\" fill=\"#4353FF\"/>\\n<path d=\"M40.0649 28.7781C40.0649 28.7781 37.6905 36.2172 37.515 36.8488C37.4449 36.2288 35.7137 22.8594 35.7137 22.8594C31.6666 22.8594 29.5144 25.7367 28.368 28.7781C28.368 28.7781 25.4789 36.2405 25.245 36.8605C25.2333 36.2756 24.8005 28.8482 24.8005 28.8482C24.5547 25.1168 21.1509 22.8594 18.3906 22.8594L21.7126 43.1066C25.9468 43.0949 28.2277 40.2292 29.4207 37.1764C29.4207 37.1764 31.959 30.591 32.0643 30.2986C32.0877 30.5793 33.8889 43.1066 33.8889 43.1066C38.1349 43.1066 40.4276 40.4281 41.6556 37.4921L47.6094 22.8594C43.4101 22.8594 41.1995 25.725 40.0649 28.7781Z\" fill=\"white\"/>\\n</g>\\n<defs>\\n<clipPath id=\"clip0_513_103\">\\n<rect width=\"44\" height=\"44\" fill=\"white\" transform=\"translate(10 10)\"/>\\n</clipPath>\\n</defs>\\n</svg>\\n',withExternalLayout:true}),isDisplayed6()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-ce9qzc\",\"data-framer-name\":\"Slack\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:60,intrinsicWidth:60,layoutDependency:layoutDependency,layoutId:\"xMEUbTfNk\",svg:'<svg width=\"60\" height=\"60\" viewBox=\"0 0 60 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<circle cx=\"30\" cy=\"30\" r=\"30\" fill=\"#540F53\"/>\\n<g clip-path=\"url(#clip0_513_124)\">\\n<path d=\"M20.85 34.1634C20.85 35.9888 19.3613 37.4797 17.5357 37.4797C15.7101 37.4797 14.2197 35.9888 14.2197 34.1634C14.2197 32.3381 15.7106 30.8472 17.536 30.8472H20.8502L20.85 34.1634ZM22.5207 34.1634C22.5207 32.3381 24.0116 30.8472 25.8369 30.8472C27.6623 30.8472 29.1532 32.3378 29.1532 34.1634V42.4646C29.1532 44.29 27.6625 45.7809 25.8369 45.7809C24.0116 45.7809 22.5207 44.29 22.5207 42.4646V34.1634Z\" fill=\"#DE1C59\"/>\\n<path d=\"M25.8369 20.8495C24.0116 20.8495 22.5207 19.3608 22.5207 17.5352C22.5207 15.7096 24.0116 14.2192 25.8369 14.2192C27.6623 14.2192 29.1532 15.7101 29.1532 17.5355V20.8497L25.8369 20.8495ZM25.8369 22.5202C27.6623 22.5202 29.1532 24.0111 29.1532 25.8364C29.1532 27.6618 27.6625 29.1527 25.8369 29.1527H17.5357C15.7104 29.1527 14.2197 27.662 14.2197 25.8364C14.2197 24.0111 15.7106 22.5202 17.536 22.5202H25.8369Z\" fill=\"#35C5F0\"/>\\n<path d=\"M39.1508 25.8364C39.1508 24.0111 40.6395 22.5202 42.4651 22.5202C44.2907 22.5202 45.7813 24.0111 45.7813 25.8364C45.7813 27.6618 44.2904 29.1527 42.4651 29.1527H39.1508V25.8364ZM37.4801 25.8364C37.4801 27.6618 35.9892 29.1527 34.1639 29.1527C32.3386 29.1527 30.8477 27.662 30.8477 25.8364V17.5352C30.8477 15.7099 32.3383 14.2192 34.1639 14.2192C35.9892 14.2192 37.4801 15.7101 37.4801 17.5355V25.8364Z\" fill=\"#2EB57D\"/>\\n<path d=\"M34.1639 39.1504C35.9892 39.1504 37.4801 40.639 37.4801 42.4646C37.4801 44.2902 35.9892 45.7809 34.1639 45.7809C32.3386 45.7809 30.8477 44.29 30.8477 42.4646V39.1504H34.1639ZM34.1639 37.4797C32.3386 37.4797 30.8477 35.9888 30.8477 34.1634C30.8477 32.3381 32.3383 30.8472 34.1639 30.8472H42.4651C44.2904 30.8472 45.7813 32.3378 45.7813 34.1634C45.7813 35.9888 44.2904 37.4797 42.4651 37.4797H34.1639Z\" fill=\"#EBB02E\"/>\\n</g>\\n<defs>\\n<clipPath id=\"clip0_513_124\">\\n<rect width=\"31.875\" height=\"31.875\" fill=\"white\" transform=\"translate(14.0625 14.0625)\"/>\\n</clipPath>\\n</defs>\\n</svg>\\n',withExternalLayout:true}),isDisplayed7()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-1a5k4d8\",\"data-framer-name\":\"Notion\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:60,intrinsicWidth:60,layoutDependency:layoutDependency,layoutId:\"GlaNhazW_\",svg:'<svg width=\"60\" height=\"60\" viewBox=\"0 0 60 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<circle cx=\"30\" cy=\"30\" r=\"30\" fill=\"white\"/>\\n<g clip-path=\"url(#clip0_513_125)\">\\n<path d=\"M18.5163 17.1143L33.6109 15.9995C35.4651 15.8404 35.9415 15.9477 37.1072 16.7951L41.9257 20.1897C42.7205 20.7734 42.9851 20.9326 42.9851 21.5682V40.1846C42.9851 41.3513 42.5613 42.0413 41.0782 42.1469L23.5494 43.208C22.4363 43.2608 21.9063 43.1017 21.3234 42.3587L17.7752 37.7449C17.1388 36.8956 16.875 36.2599 16.875 35.517V18.9693C16.875 18.0155 17.2988 17.2198 18.5163 17.1143Z\" fill=\"white\"/>\\n<path d=\"M33.6109 15.9995L18.5163 17.1143C17.2988 17.2198 16.875 18.0155 16.875 18.9693V35.5171C16.875 36.26 17.1387 36.8956 17.7752 37.7449L21.3234 42.3587C21.9063 43.1017 22.4363 43.2608 23.5494 43.208L41.0782 42.1469C42.5604 42.0413 42.9851 41.3513 42.9851 40.1846V21.5682C42.9851 20.9653 42.7468 20.7916 42.0457 20.277L41.9249 20.1897L37.1072 16.7951C35.9415 15.9477 35.4652 15.8404 33.6109 15.9995ZM23.9458 21.2635C22.5146 21.3599 22.1899 21.3817 21.377 20.7206L19.3102 19.0766C19.1001 18.8639 19.2055 18.5983 19.7348 18.5455L34.2456 17.4853C35.4641 17.379 36.0988 17.8035 36.5754 18.1746L39.0641 19.9778C39.1705 20.0314 39.4351 20.3488 39.1168 20.3488L24.1314 21.2508L23.9458 21.2635ZM22.2772 40.0255V24.2215C22.2772 23.5313 22.4891 23.2131 23.1238 23.1595L40.3353 22.1519C40.9191 22.0992 41.1829 22.4701 41.1829 23.1595V38.8579C41.1829 39.548 41.0764 40.1317 40.1235 40.1846L23.653 41.1393C22.7001 41.1921 22.2772 40.8748 22.2772 40.0255ZM38.5359 25.0689C38.6413 25.5463 38.5359 26.0237 38.0584 26.0783L37.2646 26.2356V37.9039C36.5754 38.2749 35.9407 38.4868 35.4104 38.4868C34.563 38.4868 34.3511 38.2212 33.7164 37.4265L28.5252 29.259V37.161L30.1673 37.5329C30.1673 37.5329 30.1673 38.4877 28.8425 38.4877L25.1897 38.6996C25.0834 38.4868 25.1897 37.9567 25.56 37.8512L26.5137 37.5865V27.1386L25.1898 27.0313C25.0834 26.554 25.3479 25.8646 26.09 25.811L30.0092 25.5473L35.4105 33.8202V26.5013L34.0338 26.343C33.9274 25.7582 34.3511 25.3337 34.8803 25.2818L38.5359 25.0689Z\" fill=\"black\"/>\\n</g>\\n<defs>\\n<clipPath id=\"clip0_513_125\">\\n<rect width=\"26.1101\" height=\"27.334\" fill=\"white\" transform=\"translate(16.875 15.9375)\"/>\\n</clipPath>\\n</defs>\\n</svg>\\n',withExternalLayout:true}),isDisplayed8()&&/*#__PURE__*/_jsxs(motion.div,{className:\"framer-b47mfb\",\"data-framer-name\":\"Preely\",layoutDependency:layoutDependency,layoutId:\"XmIrZD3af\",children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-a0cqzv\",\"data-framer-name\":\"Ellipse 28\",layoutDependency:layoutDependency,layoutId:\"IbQNIiTNC\",style:{backgroundColor:\"rgb(255, 255, 255)\",borderBottomLeftRadius:\"100%\",borderBottomRightRadius:\"100%\",borderTopLeftRadius:\"100%\",borderTopRightRadius:\"100%\"}}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"stretch\",positionX:\"center\",positionY:\"center\",src:\"https://framerusercontent.com/images/d0CkvZFQ1NW8bqHrHYGBxnkfjg.png\"},className:\"framer-zd14ht\",\"data-framer-name\":\"image 24\",layoutDependency:layoutDependency,layoutId:\"QwaPVxlgP\",...addPropertyOverrides({IEH6LXv3q:{background:{alt:\"\",fit:\"stretch\",loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+0+(((componentViewport?.height||60)-0-60)/2+0+0)+14.0625),positionX:\"center\",positionY:\"center\",src:\"https://framerusercontent.com/images/d0CkvZFQ1NW8bqHrHYGBxnkfjg.png\"}}},baseVariant,gestureVariant)})]}),isDisplayed9()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-1f2htrp\",\"data-framer-name\":\"User testing\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:60,intrinsicWidth:60,layoutDependency:layoutDependency,layoutId:\"GTrP78TJI\",svg:'<svg width=\"60\" height=\"60\" viewBox=\"0 0 60 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<circle cx=\"30\" cy=\"30\" r=\"30\" fill=\"white\"/>\\n<g clip-path=\"url(#clip0_513_127)\">\\n<path d=\"M23.0404 15.9375H37.3337C39.9999 15.9375 42.0968 18.0344 41.9966 20.6084V36.2369C41.9966 38.8068 39.9037 40.9037 37.3297 40.9037H34.1863L35.9023 46.4285L27.615 40.9037H23.0444C20.3781 40.9037 18.2813 38.8068 18.2813 36.1406V20.6124C18.2773 18.0344 20.3743 15.9375 23.0404 15.9375ZM28.5934 33.0895C28.1082 32.8208 27.7193 32.4319 27.4266 31.9187C27.1339 31.4056 26.9896 30.7881 26.9896 30.0704V21.743C26.9896 21.6147 26.9615 21.5145 26.9014 21.4503C26.8452 21.3822 26.749 21.3501 26.6127 21.3501H24.4837C24.4356 21.3501 24.3875 21.3582 24.3434 21.3782C24.2993 21.3982 24.2592 21.4264 24.2311 21.4664C24.1627 21.5435 24.1267 21.6441 24.1309 21.7471V30.0384C24.1309 31.3654 24.4036 32.476 24.9488 33.3782C25.4941 34.2763 26.2238 34.9459 27.146 35.3869C28.0641 35.8279 29.0904 36.0443 30.2211 36.0443C31.3558 36.0443 32.3821 35.8279 33.3003 35.3988C34.2185 34.9698 34.9481 34.3083 35.4934 33.4102C36.0387 32.5121 36.3113 31.3975 36.3113 30.0665V21.751C36.3118 21.6976 36.3023 21.6446 36.2832 21.5947C36.2632 21.5465 36.2351 21.4984 36.199 21.4624C36.1229 21.3862 36.0226 21.3461 35.8944 21.3461H33.8656C33.7453 21.3461 33.6451 21.3822 33.5729 21.4584C33.4967 21.5346 33.4607 21.6307 33.4607 21.7511V30.0704C33.4607 30.74 33.3163 31.3374 33.0276 31.8546C32.7389 32.3758 32.3501 32.7768 31.8569 33.0614C31.3637 33.346 30.8185 33.4864 30.2251 33.4864C29.6197 33.4904 29.0785 33.3581 28.5934 33.0895Z\" fill=\"#315CFD\"/>\\n</g>\\n<defs>\\n<clipPath id=\"clip0_513_127\">\\n<rect width=\"23.7187\" height=\"30.5749\" fill=\"white\" transform=\"translate(18.2812 15.9375)\"/>\\n</clipPath>\\n</defs>\\n</svg>\\n',withExternalLayout:true}),isDisplayed10()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-17je9ck\",\"data-framer-name\":\"Illustrator\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:56,intrinsicWidth:56,layoutDependency:layoutDependency,layoutId:\"shRkk7Ifq\",svg:'<svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<circle cx=\"28\" cy=\"28\" r=\"28\" fill=\"#330000\"/>\\n<g clip-path=\"url(#clip0_520_219)\">\\n<path d=\"M16.1424 10.0845H39.8863C43.4752 10.0845 46.4037 12.9843 46.4037 16.6019V39.427C46.4037 43.0159 43.5039 45.9444 39.8863 45.9444H16.1424C12.5248 45.9157 9.625 43.0159 9.625 39.3983V16.6019C9.625 12.9843 12.5248 10.0845 16.1424 10.0845Z\" fill=\"#330000\"/>\\n<path d=\"M27.3974 31.5313H21.6839L20.5355 35.1201C20.5068 35.2637 20.3919 35.3498 20.2484 35.3211H17.3773C17.205 35.3211 17.1763 35.235 17.205 35.034L22.1433 20.8508C22.2007 20.7072 22.2294 20.535 22.2868 20.334C22.3443 20.0182 22.373 19.6736 22.373 19.3291C22.3443 19.243 22.4304 19.1855 22.4878 19.1568H26.4499C26.5648 19.1568 26.6222 19.2143 26.6509 19.2717L32.2495 35.034C32.307 35.2063 32.2495 35.2924 32.106 35.2924H28.8904C28.7755 35.3211 28.6894 35.235 28.632 35.1201L27.3974 31.5313ZM22.574 28.4018H26.4499C26.3638 28.0859 26.249 27.684 26.1054 27.3107C25.9618 26.9088 25.8183 26.4494 25.7034 25.99C25.5599 25.502 25.4163 25.0426 25.2728 24.5832C25.1292 24.0951 24.9857 23.6645 24.8708 23.2338C24.756 22.8031 24.6411 22.4012 24.5263 22.0279H24.4976C24.354 22.6883 24.1818 23.3486 23.9808 24.009C23.7511 24.7555 23.5214 25.502 23.263 26.2771C23.0333 27.0523 22.8036 27.7701 22.574 28.4018ZM35.6661 21.8844C35.1493 21.9131 34.6613 21.7121 34.3167 21.3389C33.9722 20.9656 33.7712 20.4488 33.7999 19.932C33.7712 19.4152 33.9722 18.9271 34.3454 18.5826C34.7187 18.2381 35.2068 18.0371 35.6949 18.0371C36.2978 18.0371 36.7572 18.2094 37.1017 18.5826C37.4462 18.9559 37.6185 19.4439 37.6185 19.932C37.6472 20.4488 37.4462 20.9656 37.073 21.3389C36.6997 21.7121 36.1829 21.9131 35.6661 21.8844ZM33.9435 35.1775V23.3773C33.9435 23.2338 34.0009 23.1764 34.1445 23.1764H37.1878C37.3314 23.1764 37.3888 23.2625 37.3888 23.3773V35.1775C37.3888 35.3498 37.3314 35.4359 37.1878 35.4359H34.1732C34.0296 35.4072 33.9435 35.3211 33.9435 35.1775Z\" fill=\"#FF9A00\"/>\\n</g>\\n<defs>\\n<clipPath id=\"clip0_520_219\">\\n<rect width=\"36.75\" height=\"36.75\" fill=\"white\" transform=\"translate(9.625 9.625)\"/>\\n</clipPath>\\n</defs>\\n</svg>\\n',withExternalLayout:true}),isDisplayed11()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-iv0ga5\",\"data-framer-name\":\"Photoshop\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:56,intrinsicWidth:56,layoutDependency:layoutDependency,layoutId:\"Vm634SVV2\",svg:'<svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<circle cx=\"28\" cy=\"28\" r=\"28\" fill=\"#001E36\"/>\\n<g clip-path=\"url(#clip0_520_220)\">\\n<path d=\"M16.1329 10.0845H39.8671C43.4657 10.0845 46.375 12.9938 46.375 16.5924V39.4078C46.375 43.0064 43.4657 45.9157 39.8671 45.9157H16.1329C12.5343 45.9157 9.625 43.0064 9.625 39.4078V16.5924C9.625 12.9938 12.5343 10.0845 16.1329 10.0845Z\" fill=\"#001E36\"/>\\n<path d=\"M22.7937 19.1953C22.3343 19.1953 21.8749 19.1953 21.4003 19.2108C20.9254 19.226 20.4813 19.226 20.0678 19.2415C19.6544 19.2568 19.2717 19.2568 18.9042 19.272C18.5519 19.2872 18.307 19.2872 18.0466 19.2872C17.9395 19.2872 17.8936 19.3483 17.8936 19.4557V35.2123C17.8936 35.3501 17.9547 35.4115 18.0773 35.4115H21.048C21.1551 35.396 21.2318 35.3042 21.2163 35.1971V30.2818C21.5071 30.2818 21.7216 30.2818 21.8749 30.297C22.0279 30.3122 22.2728 30.3122 22.6403 30.3122C23.8962 30.3122 25.0446 30.1744 26.0856 29.7917C27.0811 29.4242 27.9387 28.781 28.5511 27.9234C29.1636 27.0659 29.4698 25.9787 29.4698 24.6619C29.4698 23.9728 29.3475 23.3145 29.1178 22.6713C28.8744 22.0161 28.4932 21.4208 27.9998 20.9257C27.4175 20.36 26.7166 19.931 25.9478 19.6699C25.0902 19.3483 24.0492 19.1953 22.7937 19.1953ZM23.1353 22.2114C23.6808 22.2217 24.212 22.3171 24.7075 22.518C25.1517 22.6866 25.5192 22.9929 25.7796 23.3908C26.0238 23.8027 26.146 24.2754 26.1319 24.754C26.1319 25.4276 25.9786 25.9484 25.657 26.3311C25.3199 26.7138 24.8913 27.005 24.4015 27.1428C23.8347 27.3265 23.2375 27.4181 22.6403 27.4181H21.8287C21.6449 27.4181 21.4462 27.4029 21.2318 27.3877V22.2427C21.3389 22.2272 21.5533 22.212 21.8597 22.2275C22.1505 22.212 22.5025 22.212 22.9007 22.212C22.9792 22.2101 23.0574 22.2099 23.1353 22.2114ZM35.9777 22.9932C34.8904 22.9932 33.9869 23.1614 33.2674 23.5289C32.6091 23.8353 32.0423 24.3251 31.6596 24.9375C31.3228 25.5043 31.1388 26.1319 31.1388 26.7905C31.1257 27.3322 31.2467 27.8687 31.4911 28.3524C31.7774 28.8674 32.1751 29.312 32.655 29.6538C33.3286 30.1146 34.0596 30.4852 34.8293 30.7563C35.5795 31.0472 36.0848 31.2769 36.33 31.4758C36.5749 31.6751 36.6975 31.8741 36.6975 32.0885C36.6975 32.3642 36.529 32.6246 36.2841 32.7317C36.0084 32.8695 35.595 32.9461 35.013 32.9461C34.4006 32.9461 33.7879 32.8695 33.206 32.7164C32.5377 32.5672 31.8971 32.3141 31.3073 31.9662C31.2614 31.9355 31.2154 31.9203 31.1695 31.951C31.1236 31.9814 31.1083 32.0426 31.1083 32.0885V34.7529C31.0931 34.8755 31.1695 34.9826 31.2769 35.0437C31.7734 35.2757 32.2987 35.4405 32.8387 35.5338C33.5278 35.6717 34.2166 35.7328 34.9209 35.7328C36.0234 35.7328 36.9424 35.5646 37.6926 35.243C38.3817 34.9674 38.9789 34.4928 39.4075 33.8801C39.809 33.2778 40.0173 32.5674 40.0047 31.8436C40.0198 31.2969 39.8989 30.755 39.6527 30.2665C39.3616 29.7457 38.9481 29.3171 38.4428 28.9955C37.7036 28.5313 36.9121 28.156 36.0848 27.8775C35.7154 27.7246 35.3526 27.556 34.9975 27.3722C34.7986 27.2651 34.6148 27.1273 34.477 26.9587C34.3851 26.8362 34.324 26.6986 34.324 26.5608C34.324 26.423 34.3699 26.27 34.4463 26.1474C34.5537 25.9943 34.7219 25.887 34.9209 25.841C35.212 25.7647 35.5336 25.7184 35.8396 25.7337C36.4216 25.7337 36.988 25.8103 37.5548 25.9329C38.0756 26.04 38.5654 26.2085 39.0248 26.4537C39.086 26.4842 39.1626 26.4842 39.3004 26.4537C39.3244 26.436 39.3438 26.4129 39.3571 26.3862C39.3704 26.3596 39.3773 26.3302 39.3771 26.3004V23.8046C39.3771 23.7431 39.3616 23.682 39.3464 23.6208C39.3156 23.5597 39.2545 23.4982 39.1933 23.483C38.771 23.3104 38.3285 23.192 37.8764 23.1307C37.2476 23.0392 36.6131 22.9934 35.9777 22.9932Z\" fill=\"#31A8FF\"/>\\n</g>\\n<defs>\\n<clipPath id=\"clip0_520_220\">\\n<rect width=\"36.75\" height=\"36.75\" fill=\"white\" transform=\"translate(9.625 9.625)\"/>\\n</clipPath>\\n</defs>\\n</svg>\\n',withExternalLayout:true}),isDisplayed12()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-1b8y7u2\",\"data-framer-name\":\"Premier Pro\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:56,intrinsicWidth:56,layoutDependency:layoutDependency,layoutId:\"h1SVzyw_u\",svg:'<svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<circle cx=\"28\" cy=\"28\" r=\"28\" fill=\"#00005B\"/>\\n<g clip-path=\"url(#clip0_520_221)\">\\n<path d=\"M37.7617 9.625H18.2383C13.4813 9.625 9.625 13.4813 9.625 18.2383V37.7617C9.625 42.5187 13.4813 46.375 18.2383 46.375H37.7617C42.5187 46.375 46.375 42.5187 46.375 37.7617V18.2383C46.375 13.4813 42.5187 9.625 37.7617 9.625Z\" fill=\"#00005B\"/>\\n<path d=\"M17.377 35.8496V20.0776C17.377 19.9706 17.4229 19.9093 17.5301 19.9093C17.7904 19.9093 18.0354 19.9093 18.3876 19.8939C18.7551 19.8787 19.1379 19.8787 19.5514 19.8633C19.9648 19.848 20.4088 19.848 20.8836 19.8327C21.3582 19.8174 21.8175 19.8174 22.2769 19.8174C23.5326 19.8174 24.5738 19.9706 25.4314 20.2921C26.2 20.5532 26.9009 20.9821 27.4832 21.5476C27.9765 22.0428 28.3577 22.6381 28.6011 23.2933C28.8308 23.9364 28.9532 24.5949 28.9532 25.2839C28.9532 26.6008 28.647 27.688 28.0345 28.5455C27.4219 29.403 26.5645 30.0461 25.5692 30.4136C24.5278 30.7964 23.3794 30.9343 22.1239 30.9343C21.7564 30.9343 21.5113 30.9343 21.3582 30.9189C21.2051 30.9037 20.9907 30.9037 20.6998 30.9037V35.819C20.715 35.9261 20.6385 36.018 20.5313 36.0333H17.5607C17.4383 36.0333 17.377 35.972 17.377 35.8342V35.8496ZM20.715 22.8798V28.0248C20.9295 28.0402 21.1285 28.0556 21.3122 28.0556H22.1239C22.7211 28.0556 23.3183 27.9637 23.8847 27.7799C24.3748 27.6421 24.8035 27.3511 25.1404 26.9683C25.462 26.5856 25.6151 26.0649 25.6151 25.3912C25.6295 24.9126 25.5073 24.4399 25.2628 24.0283C25.0026 23.6302 24.6351 23.324 24.1911 23.1555C23.6245 22.9258 23.0119 22.8339 22.3841 22.8493C21.9861 22.8493 21.6338 22.8493 21.3429 22.8646C21.0366 22.8493 20.8223 22.8646 20.715 22.8798ZM31.1582 23.7834H33.8379C33.9911 23.7834 34.1136 23.8905 34.1595 24.0283C34.2054 24.1509 34.236 24.2733 34.2514 24.4111C34.282 24.5643 34.3127 24.7327 34.3279 24.8859C34.3433 25.0543 34.3586 25.238 34.3586 25.4371C34.8184 24.9003 35.3739 24.4538 35.997 24.1201C36.7014 23.7221 37.5129 23.523 38.3245 23.523C38.4317 23.5077 38.5236 23.5843 38.5389 23.6915V26.7386C38.5389 26.8612 38.4623 26.9071 38.2939 26.9071C37.7426 26.8918 37.176 26.9377 36.6401 27.0601C36.1961 27.152 35.7673 27.2898 35.3539 27.4736C35.0629 27.6114 34.7873 27.7951 34.5729 28.0402V35.8496C34.5729 36.0027 34.5116 36.0639 34.3738 36.0639H31.3573C31.2349 36.0793 31.1276 36.0027 31.1123 35.8801V27.3358C31.1123 26.9683 31.1123 26.5856 31.097 26.1873C31.0817 25.7893 31.0817 25.3912 31.0663 24.993C31.0663 24.6408 31.0358 24.3039 31.0052 23.9518C30.9898 23.8752 31.0357 23.7986 31.1123 23.7834C31.1123 23.768 31.143 23.768 31.1582 23.7834Z\" fill=\"#9999FF\"/>\\n</g>\\n<defs>\\n<clipPath id=\"clip0_520_221\">\\n<rect width=\"36.75\" height=\"36.75\" fill=\"white\" transform=\"translate(9.625 9.625)\"/>\\n</clipPath>\\n</defs>\\n</svg>\\n',withExternalLayout:true}),isDisplayed13()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-68go1o\",\"data-framer-name\":\"After Effects\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:56,intrinsicWidth:56,layoutDependency:layoutDependency,layoutId:\"z3wCIm8k1\",svg:'<svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<circle cx=\"28\" cy=\"28\" r=\"28\" fill=\"#00005B\"/>\\n<g clip-path=\"url(#clip0_520_222)\">\\n<path d=\"M37.7617 9.625H18.2383C13.4813 9.625 9.625 13.4813 9.625 18.2383V37.7617C9.625 42.5187 13.4813 46.375 18.2383 46.375H37.7617C42.5187 46.375 46.375 42.5187 46.375 37.7617V18.2383C46.375 13.4813 42.5187 9.625 37.7617 9.625Z\" fill=\"#00005B\"/>\\n<path d=\"M24.7208 32.0368H19.0245L17.8607 35.6505C17.8301 35.7883 17.7077 35.8801 17.5699 35.8649H14.691C14.5226 35.8649 14.4767 35.7731 14.5226 35.5893L19.4533 21.4558C19.4992 21.3027 19.5452 21.1649 19.6063 20.9812C19.6676 20.6596 19.6982 20.3227 19.6982 19.9858C19.683 19.9093 19.7442 19.8327 19.8207 19.8174H23.7867C23.8939 19.8174 23.9704 19.8633 23.9858 19.9398L29.5748 35.5586C29.6207 35.7271 29.5748 35.8036 29.4217 35.8036H26.2213C26.1142 35.819 26.007 35.7423 25.9764 35.6352L24.7208 31.9602V32.0368ZM19.9127 28.9895H23.802C23.7101 28.668 23.5875 28.2852 23.4497 27.887C23.3119 27.4736 23.1741 27.0296 23.0363 26.5702C22.8833 26.0955 22.7454 25.6361 22.5923 25.1615C22.4391 24.6869 22.3014 24.2427 22.1788 23.7986C22.0564 23.3699 21.9491 22.9717 21.8419 22.6042H21.8113C21.6735 23.2627 21.5051 23.9212 21.2907 24.5795C21.061 25.3145 20.8313 26.0802 20.5864 26.8458C20.3873 27.6268 20.1422 28.3464 19.9127 28.9895ZM38.5939 30.6586H33.7399C33.801 31.1334 33.9542 31.608 34.2145 32.0214C34.4901 32.4348 34.8729 32.7564 35.3323 32.9401C35.9449 33.2006 36.6186 33.3384 37.2923 33.323C37.8283 33.3076 38.3642 33.2617 38.8849 33.1546C39.3519 33.0935 39.8095 32.9752 40.2476 32.8023C40.3242 32.7412 40.3701 32.7718 40.3701 32.9249V35.2677C40.3701 35.3289 40.3549 35.3902 40.3395 35.4515C40.3089 35.4974 40.2782 35.528 40.2323 35.5586C39.7426 35.7737 39.2284 35.928 38.7011 36.018C37.9848 36.1558 37.256 36.2174 36.5267 36.2017C35.3629 36.2017 34.383 36.018 33.5867 35.6658C32.8363 35.3443 32.178 34.8389 31.6573 34.2112C31.1725 33.6212 30.813 32.9387 30.6008 32.2051C30.3864 31.4855 30.2792 30.7351 30.2792 29.9696C30.2792 29.1427 30.4017 28.3312 30.6621 27.5349C30.9061 26.7682 31.2961 26.0559 31.8105 25.4371C32.3158 24.8246 32.9436 24.3346 33.6632 23.9823C34.383 23.6302 35.2404 23.5077 36.2205 23.5077C37.032 23.4924 37.8435 23.6456 38.5939 23.9823C39.2216 24.258 39.7729 24.6714 40.2017 25.2074C40.5998 25.728 40.9213 26.3099 41.1204 26.9531C41.3196 27.5655 41.4114 28.1934 41.4114 28.8211C41.4114 29.1886 41.3961 29.5102 41.3807 29.8012C41.3501 30.092 41.3348 30.3065 41.3196 30.4443C41.3042 30.5514 41.2123 30.6433 41.1051 30.6433C41.0132 30.6433 40.8448 30.6586 40.5998 30.674C40.3549 30.7046 40.0639 30.7199 39.7117 30.7199C39.3595 30.7199 38.992 30.6586 38.5939 30.6586ZM33.7399 28.4231H36.9707C37.3689 28.4231 37.6598 28.4231 37.8435 28.4077C37.9661 28.3923 38.0886 28.3618 38.1958 28.2852V28.1321C38.1963 27.9395 38.1653 27.7481 38.1039 27.5655C37.8283 26.708 37.0166 26.1262 36.1133 26.1568C35.6977 26.1335 35.2842 26.231 34.9229 26.4375C34.5615 26.644 34.2676 26.9507 34.0767 27.3206C33.8929 27.6727 33.7858 28.0402 33.7399 28.4231Z\" fill=\"#9999FF\"/>\\n</g>\\n<defs>\\n<clipPath id=\"clip0_520_222\">\\n<rect width=\"36.75\" height=\"36.75\" fill=\"white\" transform=\"translate(9.625 9.625)\"/>\\n</clipPath>\\n</defs>\\n</svg>\\n',withExternalLayout:true}),isDisplayed14()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-28p16j\",\"data-framer-name\":\"Audition\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:56,intrinsicWidth:56,layoutDependency:layoutDependency,layoutId:\"YRqbPGpra\",svg:'<svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<circle cx=\"28\" cy=\"28\" r=\"28\" fill=\"#00005B\"/>\\n<g clip-path=\"url(#clip0_520_223)\">\\n<path d=\"M37.7617 9.625H18.2383C13.4813 9.625 9.625 13.4813 9.625 18.2383V37.7617C9.625 42.5187 13.4813 46.375 18.2383 46.375H37.7617C42.5187 46.375 46.375 42.5187 46.375 37.7617V18.2383C46.375 13.4813 42.5187 9.625 37.7617 9.625Z\" fill=\"#00005B\"/>\\n<path d=\"M24.7281 32.0913H19.029L17.8662 35.7089C17.8375 35.8524 17.7083 35.9386 17.5791 35.9242H14.6937C14.5214 35.9242 14.4783 35.8381 14.5214 35.6515L19.4597 21.4683C19.5027 21.3104 19.5458 21.1524 19.6176 20.9658C19.6894 20.65 19.7468 20.3198 19.7468 19.9896C19.7324 19.9179 19.7898 19.8317 19.876 19.8174H23.8524C23.9529 19.8174 24.0391 19.8604 24.0534 19.9466L29.6233 35.6802C29.6664 35.8524 29.6233 35.9242 29.4654 35.9242H26.2642C26.1637 35.9386 26.0488 35.8668 26.0201 35.752L24.7281 32.0913ZM19.919 29.0336H23.8094C23.7232 28.7178 23.594 28.3302 23.4505 27.9282C23.3069 27.5119 23.1777 27.0669 23.0342 26.6075C22.8763 26.1338 22.7471 25.6744 22.5892 25.2007C22.4313 24.727 22.3021 24.2819 22.1729 23.8369C22.0437 23.4062 21.9432 23.0043 21.8283 22.6454H21.7996C21.6561 23.3058 21.4982 23.9661 21.2828 24.6265C21.0531 25.3586 20.8234 26.1338 20.5794 26.8946C20.3928 27.6698 20.1487 28.3876 19.919 29.0336ZM41.3805 23.8369V33.2397C41.3805 33.6561 41.3805 34.0149 41.3948 34.3451C41.4092 34.6609 41.4235 34.948 41.4379 35.1921C41.4666 35.4361 41.481 35.5797 41.4953 35.7376C41.5097 35.8812 41.4523 35.9386 41.3231 35.9386H38.696C38.5668 35.9529 38.452 35.8812 38.4089 35.7663L38.3228 35.3787C38.294 35.2782 38.294 35.1634 38.294 35.0629C37.806 35.5079 37.203 35.8237 36.557 36.0104C36.0115 36.1683 35.423 36.24 34.8487 36.24C34.2745 36.24 33.7147 36.1683 33.1835 35.9816C32.6954 35.8094 32.236 35.5223 31.8772 35.1347C31.4752 34.704 31.1881 34.2016 31.0158 33.6417C30.8005 32.9383 30.7 32.2062 30.7144 31.4597V23.8513C30.7 23.7651 30.7574 23.6646 30.8723 23.6503H33.8439C33.93 23.6359 34.0305 23.6934 34.0448 23.8082V31.0577C34.0448 31.7324 34.2027 32.2636 34.4898 32.6512C34.777 33.0388 35.3799 33.2397 36.0689 33.2397C36.4278 33.2397 36.7724 33.1823 37.1169 33.0531C37.4758 32.9239 37.7916 32.766 38.0787 32.5507V23.8369C38.0787 23.7364 38.1505 23.6646 38.294 23.6646H41.2226C41.2943 23.6503 41.3948 23.7077 41.3948 23.7938C41.3805 23.8082 41.3805 23.8226 41.3805 23.8369Z\" fill=\"#9999FF\"/>\\n</g>\\n<defs>\\n<clipPath id=\"clip0_520_223\">\\n<rect width=\"36.75\" height=\"36.75\" fill=\"white\" transform=\"translate(9.625 9.625)\"/>\\n</clipPath>\\n</defs>\\n</svg>\\n',withExternalLayout:true}),isDisplayed15()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-1kqut2u\",\"data-framer-name\":\"Html\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:52,intrinsicWidth:52,layoutDependency:layoutDependency,layoutId:\"KNv9xpmbm\",svg:'<svg width=\"52\" height=\"52\" viewBox=\"0 0 52 52\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<circle cx=\"26\" cy=\"26\" r=\"26\" fill=\"#E65100\"/>\\n<g clip-path=\"url(#clip0_520_319)\">\\n<rect x=\"14.625\" y=\"13.8125\" width=\"22.75\" height=\"24.375\" fill=\"white\"/>\\n<path d=\"M10.5625 10.5625L13.1354 38.8646L26 41.4375L38.8646 38.8646L41.4375 10.5625H10.5625ZM35.9315 19.5677H19.9279L20.301 23.4271H35.5584L34.5266 35.4362L25.9871 37.5781L17.4515 35.4606L16.9047 29.8594H20.7898L21.0343 32.4323L26 33.4229L30.94 32.4323L31.3131 27.2865H16.789L15.7083 15.7083H36.2917L35.9315 19.5677Z\" fill=\"#E65100\"/>\\n</g>\\n<defs>\\n<clipPath id=\"clip0_520_319\">\\n<rect width=\"29.25\" height=\"29.25\" fill=\"white\" transform=\"translate(11.375 11.375)\"/>\\n</clipPath>\\n</defs>\\n</svg>\\n',withExternalLayout:true}),isDisplayed16()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-wt17d2\",\"data-framer-name\":\"Css\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:52,intrinsicWidth:52,layoutDependency:layoutDependency,layoutId:\"x2oQWyJb3\",svg:'<svg width=\"52\" height=\"52\" viewBox=\"0 0 52 52\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<circle cx=\"26\" cy=\"26\" r=\"26\" fill=\"#1572B6\"/>\\n<g clip-path=\"url(#clip0_520_322)\">\\n<path d=\"M15.6744 37.454L13.377 11.6841H38.6234L36.3236 37.4501L25.9848 40.3164L15.6744 37.454Z\" fill=\"#1572B6\"/>\\n<path d=\"M26 38.1256L34.3543 35.8094L36.3198 13.791H26V38.1256Z\" fill=\"#33A9DC\"/>\\n<path d=\"M26 23.1275H30.1823L30.4711 19.8911H26V16.7305H33.9254L33.8495 17.5785L33.0726 26.2881H26V23.1275Z\" fill=\"white\"/>\\n<path d=\"M26.019 31.3357L26.0051 31.3398L22.4852 30.3894L22.2601 27.8687H19.0879L19.5305 32.8313L26.0046 34.6281L26.019 34.624V31.3357Z\" fill=\"#EBEBEB\"/>\\n<path d=\"M29.9136 26.1543L29.5329 30.3869L26.0078 31.3384V34.6267L32.4871 32.8311L32.5347 32.297L33.0845 26.1543H29.9136Z\" fill=\"white\"/>\\n<path d=\"M26.0109 16.7305V19.8911H18.3767L18.3134 19.1808L18.1694 17.5785L18.0938 16.7305H26.0109ZM26.0002 23.128V26.2886H22.5247L22.4614 25.5784L22.3172 23.976L22.2418 23.128H26.0002Z\" fill=\"#EBEBEB\"/>\\n</g>\\n<defs>\\n<clipPath id=\"clip0_520_322\">\\n<rect width=\"29.25\" height=\"29.25\" fill=\"white\" transform=\"translate(11.375 11.375)\"/>\\n</clipPath>\\n</defs>\\n</svg>\\n',withExternalLayout:true}),isDisplayed17()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-1e4a88c\",\"data-framer-name\":\"Javascript\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:52,intrinsicWidth:52,layoutDependency:layoutDependency,layoutId:\"ORqJMsYlr\",svg:'<svg width=\"52\" height=\"52\" viewBox=\"0 0 52 52\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<circle cx=\"26\" cy=\"26\" r=\"26\" fill=\"#F0DB4F\"/>\\n<g clip-path=\"url(#clip0_520_323)\">\\n<path d=\"M11.6963 11.6968H40.3028V40.3035H11.6963V11.6968Z\" fill=\"#F0DB4F\"/>\\n<path d=\"M37.9626 33.4808C37.753 32.1757 36.902 31.0795 34.3813 30.0574C33.5056 29.655 32.5294 29.3668 32.2385 28.7032C32.1352 28.317 32.1215 28.0995 32.1868 27.8657C32.3744 27.107 33.28 26.8705 33.9978 27.088C34.4601 27.243 34.8977 27.5992 35.1616 28.1676C36.3961 27.3682 36.3936 27.3735 37.2555 26.8241C36.9399 26.3349 36.7715 26.1091 36.565 25.8998C35.8225 25.0705 34.8109 24.6434 33.193 24.6761L32.3502 24.7851C31.5426 24.9891 30.773 25.413 30.3217 25.9813C28.9675 27.5179 29.3537 30.2071 31.0015 31.3138C32.6249 32.5322 35.0097 32.8094 35.3143 33.9488C35.6107 35.3436 34.2892 35.7952 32.9757 35.6348C32.0077 35.4334 31.4693 34.9414 30.8873 34.0468C29.816 34.6668 29.816 34.6668 28.7145 35.3002C28.9757 35.8713 29.2502 36.1297 29.688 36.6245C31.7602 38.7263 36.9457 38.6231 37.8757 35.4417C37.9134 35.3324 38.1639 34.6039 37.9626 33.4808ZM27.2486 24.8445H24.5729L24.5619 31.7621C24.5619 33.2333 24.638 34.582 24.3988 34.9954C24.0073 35.8084 22.993 35.7077 22.5307 35.55C22.0602 35.3187 21.8209 34.9899 21.5437 34.5251C21.4676 34.3916 21.4105 34.2883 21.3913 34.2803L19.2158 35.6126C19.5776 36.355 20.1105 36.9995 20.793 37.4181C21.8127 38.0301 23.1831 38.2177 24.6163 37.8886C25.5491 37.6169 26.354 37.0541 26.7753 36.1974C27.3846 35.0742 27.2539 33.7148 27.2484 32.2111C27.2621 29.758 27.2486 27.3054 27.2486 24.8445Z\" fill=\"#323330\"/>\\n</g>\\n<defs>\\n<clipPath id=\"clip0_520_323\">\\n<rect width=\"29.25\" height=\"29.25\" fill=\"white\" transform=\"translate(11.375 11.375)\"/>\\n</clipPath>\\n</defs>\\n</svg>\\n',withExternalLayout:true}),isDisplayed18()&&/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fit\",positionX:\"center\",positionY:\"center\",src:\"https://framerusercontent.com/images/YsOAfHZW7kw5D0cPtrXOLPcQs.png\"},className:\"framer-27v5vy\",\"data-framer-name\":\"Qualtrics\",layoutDependency:layoutDependency,layoutId:\"ZstEYFLek\",...addPropertyOverrides({CuhveJylk:{background:{alt:\"\",fit:\"fit\",loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+0+(((componentViewport?.height||52)-0-52)/2+0+0)),positionX:\"center\",positionY:\"center\",src:\"https://framerusercontent.com/images/YsOAfHZW7kw5D0cPtrXOLPcQs.png\"}}},baseVariant,gestureVariant)}),isDisplayed19()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-1vxexdt\",\"data-framer-name\":\"Tableau\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:52,intrinsicWidth:52,layoutDependency:layoutDependency,layoutId:\"Ya35T8_dI\",svg:'<svg width=\"52\" height=\"52\" viewBox=\"0 0 52 52\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<circle cx=\"26\" cy=\"26\" r=\"26\" fill=\"white\"/>\\n<g clip-path=\"url(#clip0_520_325)\">\\n<path d=\"M25.8721 12.7312V14.093H23.4365V14.9787H25.8721V17.691H26.8242V14.9787H29.3208V14.093H26.8242V11.375H25.8721V12.7312Z\" fill=\"#7099A6\"/>\\n<path d=\"M17.9123 16.1857V18.1619H14.2256V19.4018H17.9123V23.4151H19.2796V19.4018H23.0216V18.1619H19.2796V14.2095H17.9123V16.1857Z\" fill=\"#EB912C\"/>\\n<path d=\"M33.3625 16.1857V18.1619H29.6758V19.4627H33.3625V23.4151H34.7851V19.4627H38.4717V18.1619H34.7851V14.2095H33.3625V16.1857Z\" fill=\"#59879B\"/>\\n<path d=\"M25.5179 22.9164V25.1306H21.416V26.7802H25.5179V31.2086H27.1786V26.7802H31.2804V25.1306H27.1786V20.7021H25.5179V22.9164Z\" fill=\"#E8762C\"/>\\n<path d=\"M37.5805 24.0347V25.4242H35.084V26.5478H37.5805V29.3211H38.826V26.5478H41.3226V25.4242H38.826V22.6509H37.5805V24.0347Z\" fill=\"#5B6591\"/>\\n<path d=\"M13.8107 24.1566V25.4852H11.375V26.4262H13.8107V29.0833H14.7627V26.4262L17.2592 26.3376V25.4852H14.7627V22.8281H13.8107V24.1566Z\" fill=\"#7099A6\"/>\\n<path d=\"M17.9123 30.4117V32.3879H14.2256V33.6888H17.9123V37.6412H19.3349V33.6888H23.0216V32.3879H19.3349V28.4355H17.9123V30.4117Z\" fill=\"#C72035\"/>\\n<path d=\"M33.3625 30.4117V32.3879H29.6758V33.6279H33.3625V37.6412H34.7851V33.6279H38.4717V32.3879H34.7851V28.4355H33.3625V30.4117Z\" fill=\"#1F447E\"/>\\n<path d=\"M25.7563 35.4324V36.8163H23.2598V37.94H25.7563V40.7133H27.0018V37.94H29.4983V36.8163H27.0018V34.043H25.7563V35.4324Z\" fill=\"#5B6591\"/>\\n</g>\\n<defs>\\n<clipPath id=\"clip0_520_325\">\\n<rect width=\"29.9476\" height=\"29.3627\" fill=\"white\" transform=\"translate(11.375 11.375)\"/>\\n</clipPath>\\n</defs>\\n</svg>\\n',withExternalLayout:true})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-n3Och.framer-1kz55fm, .framer-n3Och .framer-1kz55fm { display: block; }\",\".framer-n3Och.framer-1h4mof { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: hidden; padding: 0px; position: relative; width: min-content; }\",\".framer-n3Och .framer-1l0wa3s, .framer-n3Och .framer-ol546m, .framer-n3Och .framer-l8baos, .framer-n3Och .framer-8faftq { flex: none; height: 64px; position: relative; width: 64px; }\",\".framer-n3Och .framer-1frjsc3, .framer-n3Och .framer-ce9qzc, .framer-n3Och .framer-1a5k4d8, .framer-n3Och .framer-1f2htrp { flex: none; height: 60px; position: relative; width: 60px; }\",\".framer-n3Och .framer-14gzpg6 { flex: none; height: 64px; overflow: visible; position: relative; width: 64px; }\",\".framer-n3Och .framer-b2dzc4 { flex: none; height: 64px; left: 0px; position: absolute; top: 0px; width: 64px; }\",\".framer-n3Och .framer-qbz21d { aspect-ratio: 1 / 1; flex: none; height: var(--framer-aspect-ratio-supported, 44px); left: 10px; position: absolute; top: 10px; width: 44px; }\",\".framer-n3Och .framer-b47mfb { flex: none; height: 60px; overflow: visible; position: relative; width: 60px; }\",\".framer-n3Och .framer-a0cqzv { flex: none; height: 60px; left: 0px; position: absolute; top: 0px; width: 60px; }\",\".framer-n3Och .framer-zd14ht { aspect-ratio: 1 / 1; flex: none; height: var(--framer-aspect-ratio-supported, 35px); left: 14px; position: absolute; top: 14px; width: 35px; }\",\".framer-n3Och .framer-17je9ck, .framer-n3Och .framer-iv0ga5, .framer-n3Och .framer-1b8y7u2, .framer-n3Och .framer-68go1o, .framer-n3Och .framer-28p16j { flex: none; height: 56px; position: relative; width: 56px; }\",\".framer-n3Och .framer-1kqut2u, .framer-n3Och .framer-wt17d2, .framer-n3Och .framer-1e4a88c, .framer-n3Och .framer-27v5vy, .framer-n3Och .framer-1vxexdt { flex: none; height: 52px; position: relative; width: 52px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-n3Och.framer-1h4mof { gap: 0px; } .framer-n3Och.framer-1h4mof > * { margin: 0px; margin-bottom: calc(0px / 2); margin-top: calc(0px / 2); } .framer-n3Och.framer-1h4mof > :first-child { margin-top: 0px; } .framer-n3Och.framer-1h4mof > :last-child { margin-bottom: 0px; } }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 64\n * @framerIntrinsicWidth 64\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"Ye9UnfRYD\":{\"layout\":[\"auto\",\"auto\"]},\"URJNyTcFB\":{\"layout\":[\"auto\",\"auto\"]},\"D04zqwZ4k\":{\"layout\":[\"auto\",\"auto\"]},\"g2dg8nB8i\":{\"layout\":[\"auto\",\"auto\"]},\"M1gqRpJS7\":{\"layout\":[\"auto\",\"auto\"]},\"TRqbGwyhf\":{\"layout\":[\"auto\",\"auto\"]},\"b0oKTfXCF\":{\"layout\":[\"auto\",\"auto\"]},\"IEH6LXv3q\":{\"layout\":[\"auto\",\"auto\"]},\"dpw0FRYaz\":{\"layout\":[\"auto\",\"auto\"]},\"bK6qvfxmN\":{\"layout\":[\"auto\",\"auto\"]},\"J8J3zuEVP\":{\"layout\":[\"auto\",\"auto\"]},\"g6yjgdtAS\":{\"layout\":[\"auto\",\"auto\"]},\"W7lh_QHPd\":{\"layout\":[\"auto\",\"auto\"]},\"OzmLeWv_Z\":{\"layout\":[\"auto\",\"auto\"]},\"fXKmCR9Ne\":{\"layout\":[\"auto\",\"auto\"]},\"nhEbGL91s\":{\"layout\":[\"auto\",\"auto\"]},\"Ez6KswtWc\":{\"layout\":[\"auto\",\"auto\"]},\"CuhveJylk\":{\"layout\":[\"auto\",\"auto\"]},\"OPwHiUh9I\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerAMQpoE8N1=withCSS(Component,css,\"framer-n3Och\");export default FramerAMQpoE8N1;FramerAMQpoE8N1.displayName=\"Figma\";FramerAMQpoE8N1.defaultProps={height:64,width:64};addPropertyControls(FramerAMQpoE8N1,{variant:{options:[\"WWI0BwrkZ\",\"Ye9UnfRYD\",\"URJNyTcFB\",\"D04zqwZ4k\",\"g2dg8nB8i\",\"M1gqRpJS7\",\"TRqbGwyhf\",\"b0oKTfXCF\",\"IEH6LXv3q\",\"dpw0FRYaz\",\"bK6qvfxmN\",\"J8J3zuEVP\",\"g6yjgdtAS\",\"W7lh_QHPd\",\"OzmLeWv_Z\",\"fXKmCR9Ne\",\"nhEbGL91s\",\"Ez6KswtWc\",\"CuhveJylk\",\"OPwHiUh9I\"],optionTitles:[\"Figma\",\"Sketch\",\"Framer\",\"Webflow\",\"Figjam\",\"Maze\",\"Slack\",\"Notion\",\"Preely\",\"Usertesting\",\"Photoshop\",\"Illustrator\",\"PremierPro\",\"After effects\",\"Audition\",\"Html\",\"css\",\"javasctopt\",\"qualtrics\",\"tableau\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramerAMQpoE8N1,[{explicitInter:true,fonts:[]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerAMQpoE8N1\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"64\",\"framerColorSyntax\":\"true\",\"framerIntrinsicWidth\":\"64\",\"framerContractVersion\":\"1\",\"framerComponentViewportWidth\":\"true\",\"framerImmutableVariables\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"Ye9UnfRYD\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"URJNyTcFB\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"D04zqwZ4k\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"g2dg8nB8i\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"M1gqRpJS7\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"TRqbGwyhf\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"b0oKTfXCF\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"IEH6LXv3q\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"dpw0FRYaz\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"bK6qvfxmN\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"J8J3zuEVP\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"g6yjgdtAS\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"W7lh_QHPd\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"OzmLeWv_Z\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"fXKmCR9Ne\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"nhEbGL91s\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"Ez6KswtWc\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"CuhveJylk\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"OPwHiUh9I\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerDisplayContentsDiv\":\"false\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./AMQpoE8N1.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"],
  "mappings": "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",
  "names": ["clamp", "t", "e", "i", "Animate", "s", "o", "r", "Dimensions", "window", "Emitter", "VirtualScroll", "Lenis", "l", "h", "c", "u", "d", "m", "v", "g", "w", "S", "n", "a", "SmoothScrollComponent", "props", "intensity", "lenis", "pe", "ue", "error", "checkForStopScroll", "stopScrollElement", "htmlElement", "hasHiddenOverflow", "stopScrollObserver", "htmlStyleObserver", "allElements", "i", "element", "computedStyle", "window", "styleError", "Lenis", "raf", "time", "animationId", "anchorLinksData", "anchor", "isInternalLink", "hasHash", "anchorElement", "href", "decodedHref", "scrollMargin", "targetElement", "marginStyle", "targetError", "anchorError", "handleClick", "e", "handlers", "index", "p", "SmoothScroll", "withCSS", "SmoothScroll_Prod_default", "addPropertyControls", "ControlType", "cycleOrder", "serializationHash", "variantClassNames", "addPropertyOverrides", "overrides", "variants", "nextOverrides", "variant", "transition1", "Transition", "value", "children", "config", "re", "MotionConfigContext", "transition", "contextValue", "se", "p", "Variants", "motion", "x", "humanReadableVariantMap", "getProps", "height", "id", "width", "props", "createLayoutDependency", "Component", "Y", "ref", "fallbackRef", "pe", "refBinding", "defaultLayoutId", "ae", "activeLocale", "setLocale", "useLocaleInfo", "componentViewport", "useComponentViewport", "style", "className", "layoutId", "restProps", "baseVariant", "classNames", "clearLoadingGesture", "gestureHandlers", "gestureVariant", "isLoading", "setGestureState", "setVariant", "useVariantState", "layoutDependency", "scopingClassNames", "cx", "isDisplayed", "isDisplayed1", "isDisplayed2", "isDisplayed3", "isDisplayed4", "isDisplayed5", "isDisplayed6", "isDisplayed7", "isDisplayed8", "isDisplayed9", "isDisplayed10", "isDisplayed11", "isDisplayed12", "isDisplayed13", "isDisplayed14", "isDisplayed15", "isDisplayed16", "isDisplayed17", "isDisplayed18", "isDisplayed19", "LayoutGroup", "u", "SVG", "Image2", "getLoadingLazyAtYPosition", "css", "FramerAMQpoE8N1", "withCSS", "AMQpoE8N1_default", "addPropertyControls", "ControlType", "addFonts", "e", "global", "t", "n", "__webpack_require__", "i", "o", "r", "a", "s", "window", "_seededRandom", "l", "chain", "c", "u", "f", "d", "p", "v", "y", "m", "g", "x", "h", "b", "S", "w", "_initProperties", "_", "A", "P", "C", "k", "M", "B", "I", "T", "R", "E", "V", "L", "_createCanvas", "loop", "_updateTiming", "_getPixelRatio", "_applyBackground", "_mean", "_getTexture", "q", "O", "D", "F", "H", "W", "G", "N", "U", "z", "X", "Q", "Y", "Z", "$", "J", "render", "addPoint", "addSegmentPoint"]
}
