PageSourceSearch

https://agda.com.au/wp-content/themes/agda/dist/frontend/assets/front-page-B19HU0C9.js

js agda.com.au collected 2026-10-02 03:38:51 UTC 140,934 bytes, 29 lines download raw bytes

1import{b as _e,g as ut,e as R,bd as Tt,bm as ye,j as A,t as se,bk as Ge,be as Bt,B as Se,f as Et,I as Rt,bn as ft,bo as Lt,L as et,W as tt,w as At,bp as It}from"./entry.client-BF1tJIhu.js";import{a as dt}from"./RouteFlipped-B4cBB0q3.js";import{g as Dt}from"./awards-utils-D5pgf6ZW.js";import{R as nt}from"./ResponsiveImage-CSPuaRWh.js";import{g as Ot}from"./dates-D-wmKt_5.js";import{S as kt}from"./Transition-BTIyssUe.js";const Ft=!1,gt=5,Nt=2,Oe=15,ht=.5,Ht=.9,Z=10,ke={SCALE:.15,POSITION:.085},vt=300,mt=300,Wt=200,jt=200,X={MOUSE:1,INTERACT:2,GENERAL:4,BALL:16,BRICK:32,WALL:64},Vt=()=>{let L=1280,D=768;return window.innerWidth<=600&&(L=375,D=550),Math.min(Math.min(L,window.innerWidth)/L,Math.min(D,window.innerHeight)/D)},$e=[[1,0,1],[0,1,0],[1,0,0],[0,1,0],[0,0,1],[0,1,0]],Ut=[[1,0,0],[0,1,0],[0,0,1],[0,1,0],[1,0,0],[0,0,1]],zt=(L,D=$e)=>{let T=0,E=0,u=0;for(;!(T===L&&D[u][E]===1);){if(D[u][E]===1){if(T===L)break;T++}E===D[u].length-1?(E=0,u=u<D.length-1?u+1:0):E++}return{col:E,row:u}};var Ne={exports:{}};/*!
2 * matter-js 0.20.0 by @liabru
3 * http://brm.io/matter-js/
4 * License MIT
5 * 
6 * The MIT License (MIT)
7 * 
8 * Copyright (c) Liam Brummitt and contributors.
9 * 
10 * Permission is hereby granted, free of charge, to any person obtaining a copy
11 * of this software and associated documentation files (the "Software"), to deal
12 * in the Software without restriction, including without limitation the rights
13 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14 * copies of the Software, and to permit persons to whom the Software is
15 * furnished to do so, subject to the following conditions:
16 * 
17 * The above copyright notice and this permission notice shall be included in
18 * all copies or substantial portions of the Software.
19 * 
20 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
26 * THE SOFTWARE.
27 */var Yt=Ne.exports,rt;function Xt(){return rt||(rt=1,(function(L,D){(function(E,u){L.exports=u()})(Yt,function(){return(function(T){var E={};function u(e){if(E[e])return E[e].exports;var l=E[e]={i:e,l:!1,exports:{}};return T[e].call(l.exports,l,l.exports,u),l.l=!0,l.exports}return u.m=T,u.c=E,u.d=function(e,l,o){u.o(e,l)||Object.defineProperty(e,l,{enumerable:!0,get:o})},u.r=function(e){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},u.t=function(e,l){if(l&1&&(e=u(e)),l&8||l&4&&typeof e=="object"&&e&&e.__esModule)return e;var o=Object.create(null);if(u.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),l&2&&typeof e!="string")for(var i in e)u.d(o,i,(function(d){return e[d]}).bind(null,i));return o},u.n=function(e){var l=e&&e.__esModule?function(){return e.default}:function(){return e};return u.d(l,"a",l),l},u.o=function(e,l){return Object.prototype.hasOwnProperty.call(e,l)},u.p="",u(u.s=20)})([(function(T,E){var u={};T.exports=u,(function(){u._baseDelta=1e3/60,u._nextId=0,u._seed=0,u._nowStartTime=+new Date,u._warnedOnce={},u._decomp=null,u.extend=function(l,o){var i,d;typeof o=="boolean"?(i=2,d=o):(i=1,d=!0);for(var n=i;n<arguments.length;n++){var f=arguments[n];if(f)for(var a in f)d&&f[a]&&f[a].constructor===Object&&(!l[a]||l[a].constructor===Object)?(l[a]=l[a]||{},u.extend(l[a],d,f[a])):l[a]=f[a]}return l},u.clone=function(l,o){return u.extend({},o,l)},u.keys=function(l){if(Object.keys)return Object.keys(l);var o=[];for(var i in l)o.push(i);return o},u.values=function(l){var o=[];if(Object.keys){for(var i=Object.keys(l),d=0;d<i.length;d++)o.push(l[i[d]]);return o}for(var n in l)o.push(l[n]);return o},u.get=function(l,o,i,d){o=o.split(".").slice(i,d);for(var n=0;n<o.length;n+=1)l=l[o[n]];return l},u.set=function(l,o,i,d,n){var f=o.split(".").slice(d,n);return u.get(l,o,0,-1)[f[f.length-1]]=i,i},u.shuffle=function(l){for(var o=l.length-1;o>0;o--){var i=Math.floor(u.random()*(o+1)),d=l[o];l[o]=l[i],l[i]=d}return l},u.choose=function(l){return l[Math.floor(u.random()*l.length)]},u.isElement=function(l){return typeof HTMLElement<"u"?l instanceof HTMLElement:!!(l&&l.nodeType&&l.nodeName)},u.isArray=function(l){return Object.prototype.toString.call(l)==="[object Array]"},u.isFunction=function(l){return typeof l=="function"},u.isPlainObject=function(l){return typeof l=="object"&&l.constructor===Object}
vendor: 5,763 bytes, line 27
27,u.isString=function(l){return toString.call(l)==="[object String]"},u.clamp=function(l,o,i){return l<o?o:l>i?i:l},u.sign=function(l){return l<0?-1:1},u.now=function(){if(typeof window<"u"&&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-u._nowStartTime},u.random=function(l,o){return l=typeof l<"u"?l:0,o=typeof o<"u"?o:1,l+e()*(o-l)};var e=function(){return u._seed=(u._seed*9301+49297)%233280,u._seed/233280};u.colorToNumber=function(l){return l=l.replace("#",""),l.length==3&&(l=l.charAt(0)+l.charAt(0)+l.charAt(1)+l.charAt(1)+l.charAt(2)+l.charAt(2)),parseInt(l,16)},u.logLevel=1,u.log=function(){console&&u.logLevel>0&&u.logLevel<=3&&console.log.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},u.info=function(){console&&u.logLevel>0&&u.logLevel<=2&&console.info.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},u.warn=function(){console&&u.logLevel>0&&u.logLevel<=3&&console.warn.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},u.warnOnce=function(){var l=Array.prototype.slice.call(arguments).join(" ");u._warnedOnce[l]||(u.warn(l),u._warnedOnce[l]=!0)},u.deprecated=function(l,o,i){l[o]=u.chain(function(){u.warnOnce("🔅 deprecated 🔅",i)},l[o])},u.nextId=function(){return u._nextId++},u.indexOf=function(l,o){if(l.indexOf)return l.indexOf(o);for(var i=0;i<l.length;i++)if(l[i]===o)return i;return-1},u.map=function(l,o){if(l.map)return l.map(o);for(var i=[],d=0;d<l.length;d+=1)i.push(o(l[d]));return i},u.topologicalSort=function(l){var o=[],i=[],d=[];for(var n in l)!i[n]&&!d[n]&&u._topologicalSort(n,i,d,l,o);return o},u._topologicalSort=function(l,o,i,d,n){var f=d[l]||[];i[l]=!0;for(var a=0;a<f.length;a+=1){var t=f[a];i[t]||o[t]||u._topologicalSort(t,o,i,d,n)}i[l]=!1,o[l]=!0,n.push(l)},u.chain=function(){for(var l=[],o=0;o<arguments.length;o+=1){var i=arguments[o];i._chained?l.push.apply(l,i._chained):l.push(i)}var d=function(){for(var n,f=new Array(arguments.length),a=0,t=arguments.length;a<t;a++)f[a]=arguments[a];for(a=0;a<l.length;a+=1){var s=l[a].apply(n,f);typeof s<"u"&&(n=s)}return n};return d._chained=l,d},u.chainPathBefore=function(l,o,i){return u.set(l,o,u.chain(i,u.get(l,o)))},u.chainPathAfter=function(l,o,i){return u.set(l,o,u.chain(u.get(l,o),i))},u.setDecomp=function(l){u._decomp=l},u.getDecomp=function(){var l=u._decomp;try{!l&&typeof window<"u"&&(l=window.decomp),!l&&typeof _e<"u"&&(l=_e.decomp)}catch{l=null}return l}})()}),(function(T,E){var u={};T.exports=u,(function(){u.create=function(e){var l={min:{x:0,y:0},max:{x:0,y:0}};return e&&u.update(l,e),l},u.update=function(e,l,o){e.min.x=1/0,e.max.x=-1/0,e.min.y=1/0,e.max.y=-1/0;for(var i=0;i<l.length;i++){var d=l[i];d.x>e.max.x&&(e.max.x=d.x),d.x<e.min.x&&(e.min.x=d.x),d.y>e.max.y&&(e.max.y=d.y),d.y<e.min.y&&(e.min.y=d.y)}o&&(o.x>0?e.max.x+=o.x:e.min.x+=o.x,o.y>0?e.max.y+=o.y:e.min.y+=o.y)},u.contains=function(e,l){return l.x>=e.min.x&&l.x<=e.max.x&&l.y>=e.min.y&&l.y<=e.max.y},u.overlaps=function(e,l){return e.min.x<=l.max.x&&e.max.x>=l.min.x&&e.max.y>=l.min.y&&e.min.y<=l.max.y},u.translate=function(e,l){e.min.x+=l.x,e.max.x+=l.x,e.min.y+=l.y,e.max.y+=l.y},u.shift=function(e,l){var o=e.max.x-e.min.x,i=e.max.y-e.min.y;e.min.x=l.x,e.max.x=l.x+o,e.min.y=l.y,e.max.y=l.y+i}})()}),(function(T,E){var u={};T.exports=u,(function(){u.create=function(e,l){return{x:e||0,y:l||0}},u.clone=function(e){return{x:e.x,y:e.y}},u.magnitude=function(e){return Math.sqrt(e.x*e.x+e.y*e.y)},u.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},u.rotate=function(e,l,o){var i=Math.cos(l),d=Math.sin(l);o||(o={});var n=e.x*i-e.y*d;return o.y=e.x*d+e.y*i,o.x=n,o},u.rotateAbout=function(e,l,o,i){var d=Math.cos(l),n=Math.sin(l);i||(i={});var f=o.x+((e.x-o.x)*d-(e.y-o.y)*n);return i.y=o.y+((e.x-o.x)*n+(e.y-o.y)*d),i.x=f,i},u.normalise=function(e){var l=u.magnitude(e);return l===0?{x:0,y:0}:{x:e.x/l,y:e.y/l}},u.dot=function(e,l){return e.x*l.x+e.y*l.y},u.cross=function(e,l){return e.x*l.y-e.y*l.x},u.cross3=function(e,l,o){return(l.x-e.x)*(o.y-e.y)-(l.y-e.y)*(o.x-e.x)},u.add=function(e,l,o){return o||(o={}),o.x=e.x+l.x,o.y=e.y+l.y,o},u.sub=function(e,l,o){return o||(o={}),o.x=e.x-l.x,o.y=e.y-l.y,o},u.mult=function(e,l){return{x:e.x*l,y:e.y*l}},u.div=function(e,l){return{x:e.x/l,y:e.y/l}},u.perp=function(e,l){return l=l===!0?-1:1,{x:l*-e.y,y:l*e.x}},u.neg=function(e){return{x:-e.x,y:-e.y}},u.angle=function(e,l){return Math.atan2(l.y-e.y,l.x-e.x)},u._temp=[u.create(),u.create(),u.create(),u.create(),u.create(),u.create()]})()}),(function(T,E,u){var e={};T.exports=e;var l=u(2),o=u(0);(function(){e.create=function(i,d){for(var n=[],f=0;f<i.length;f++){var a=i[f],t={x:a.x,y:a.y,index:f,body:d,isInternal:!1};n.push(t)}return n},e.fromPath=function(i,d){var n=/L?\s*([-\d.e]+)[\s,]*([-\d.e]+)*/ig,f=[];return i.replace(n,function(a,t,s){f.push({x:parseFloat(t),y:parseFloat(s)})}),e.create(f,d)},e.centre=function(i){for(var d=e.area(i,!0),n={x:0,y:0},f,a,t,s=0;s<i.length;s++)t=(s+1)%i.length,f=l.cross(i[s],i[t]),a=l.mult(l.add(i[s],i[t]),f),n=l.add(n,a);return l.div(n,6*d)},e.mean=function(i){for(var d={x:0,y:0},n=0;n<i.length;n++)d.x+=i[n].x,d.y+=i[n].y;return l.div(d,i.length)},e.area=function(i,d){for(var n=0,f=i.length-1,a=0;a<i.length;a++)n+=(i[f].x-i[a].x)*(i[f].y+i[a].y),f=a;return d?n/2:Math.abs(n)/2},e.inertia=function(i,d){for(var n=0,f=0,a=i,t,s,r=0;r<a.length;r++)s=(r+1)%a.length,t=Math.abs(l.cross(a[s],a[r])),n+=t*(l.dot(a[s],a[s])+l.dot(a[s],a[r])+l.dot(a[r],a[r])),f+=t;return d/6*(n/f)},e.translate=function(i,d,n){n=typeof n<"u"?n:1;var f=i.length,a=d.x*n,t=d.y*n,s;for(s=0;s<f;s++)i[s].x+=a,i[s].y+=t;return i}
27,e.rotate=function(i,d,n){if(d!==0){var f=Math.cos(d),a=Math.sin(d),t=n.x,s=n.y,r=i.length,c,h,v,y;for(y=0;y<r;y++)c=i[y],h=c.x-t,v=c.y-s,c.x=t+(h*f-v*a),c.y=s+(h*a+v*f);return i}},e.contains=function(i,d){for(var n=d.x,f=d.y,a=i.length,t=i[a-1],s,r=0;r<a;r++){if(s=i[r],(n-t.x)*(s.y-t.y)+(f-t.y)*(t.x-s.x)>0)return!1;t=s}return!0},e.scale=function(i,d,n,f){if(d===1&&n===1)return i;f=f||e.centre(i);for(var a,t,s=0;s<i.length;s++)a=i[s],t=l.sub(a,f),i[s].x=f.x+t.x*d,i[s].y=f.y+t.y*n;return i},e.chamfer=function(i,d,n,f,a){typeof d=="number"?d=[d]:d=d||[8],n=typeof n<"u"?n:-1,f=f||2,a=a||14;for(var t=[],s=0;s<i.length;s++){var r=i[s-1>=0?s-1:i.length-1],c=i[s],h=i[(s+1)%i.length],v=d[s<d.length?s:d.length-1];if(v===0){t.push(c);continue}var y=l.normalise({x:c.y-r.y,y:r.x-c.x}),M=l.normalise({x:h.y-c.y,y:c.x-h.x}),g=Math.sqrt(2*Math.pow(v,2)),m=l.mult(o.clone(y),v),w=l.normalise(l.mult(l.add(y,M),.5)),p=l.sub(c,l.mult(w,g)),b=n;n===-1&&(b=Math.pow(v,.32)*1.75),b=o.clamp(b,f,a),b%2===1&&(b+=1);for(var P=Math.acos(l.dot(y,M)),S=P/b,x=0;x<b;x++)t.push(l.add(l.rotate(m,S*x),p))}return t},e.clockwiseSort=function(i){var d=e.mean(i);return i.sort(function(n,f){return l.angle(d,n)-l.angle(d,f)}),i},e.isConvex=function(i){var d=0,n=i.length,f,a,t,s;if(n<3)return null;for(f=0;f<n;f++)if(a=(f+1)%n,t=(f+2)%n,s=(i[a].x-i[f].x)*(i[t].y-i[a].y),s-=(i[a].y-i[f].y)*(i[t].x-i[a].x),s<0?d|=1:s>0&&(d|=2),d===3)return!1;return d!==0?!0:null},e.hull=function(i){var d=[],n=[],f,a;for(i=i.slice(0),i.sort(function(t,s){var r=t.x-s.x;return r!==0?r:t.y-s.y}),a=0;a<i.length;a+=1){for(f=i[a];n.length>=2&&l.cross3(n[n.length-2],n[n.length-1],f)<=0;)n.pop();n.push(f)}for(a=i.length-1;a>=0;a-=1){for(f=i[a];d.length>=2&&l.cross3(d[d.length-2],d[d.length-1],f)<=0;)d.pop();d.push(f)}return d.pop(),n.pop(),d.concat(n)}})()}),(function(T,E,u){var e={};T.exports=e;var l=u(3),o=u(2),i=u(7),d=u(0),n=u(1),f=u(11);(function(){e._timeCorrection=!0,e._inertiaScale=4,e._nextCollidingGroupId=1,e._nextNonCollidingGroupId=-1,e._nextCategory=1,e._baseDelta=1e3/60,e.create=function(t){var s={id:d.nextId(),type:"body",label:"Body",parts:[],plugin:{},angle:0,vertices:l.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:!1,isStatic:!1,isSleeping:!1,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:!0,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,deltaTime:16.666666666666668,_original:null},r=d.extend(s,t);return a(r,t),r},e.nextGroup=function(t){return t?e._nextNonCollidingGroupId--:e._nextCollidingGroupId++},e.nextCategory=function(){return e._nextCategory=e._nextCategory<<1,e._nextCategory};var a=function(t,s){s=s||{},e.set(t,{bounds:t.bounds||n.create(t.vertices),positionPrev:t.positionPrev||o.clone(t.position),anglePrev:t.anglePrev||t.angle,vertices:t.vertices,parts:t.parts||[t],isStatic:t.isStatic,isSleeping:t.isSleeping,parent:t.parent||t}),l.rotate(t.vertices,t.angle,t.position),f.rotate(t.axes,t.angle),n.update(t.bounds,t.vertices,t.velocity),e.set(t,{axes:s.axes||t.axes,area:s.area||t.area,mass:s.mass||t.mass,inertia:s.inertia||t.inertia});var r=t.isStatic?"#14151f":d.choose(["#f19648","#f5d259","#f55a3c","#063e7b","#ececd1"]),c=t.isStatic?"#555":"#ccc",h=t.isStatic&&t.render.fillStyle===null?1:0;t.render.fillStyle=t.render.fillStyle||r,t.render.strokeStyle=t.render.strokeStyle||c,t.render.lineWidth=t.render.lineWidth||h,t.render.sprite.xOffset+=-(t.bounds.min.x-t.position.x)/(t.bounds.max.x-t.bounds.min.x),t.render.sprite.yOffset+=-(t.bounds.min.y-t.position.y)/(t.bounds.max.y-t.bounds.min.y)};e.set=function(t,s,r){var c;typeof s=="string"&&(c=s,s={},s[c]=r);for(c in s)if(Object.prototype.hasOwnProperty.call(s,c))switch(r=s[c],c){case"isStatic":e.setStatic(t,r);break;case"isSleeping":i.set(t,r);break;case"mass":e.setMass(t,r);break;case"density":e.setDensity(t,r);break;case"inertia":e.setInertia(t,r);break;case"vertices":e.setVertices(t,r);break;case"position":e.setPosition(t,r);break;case"angle":e.setAngle(t,r);break;case"velocity":e.setVelocity(t,r);break;case"angularVelocity":e.setAngularVelocity(t,r);break;case"speed":e.setSpeed(t,r);break;case"angularSpeed":e.setAngularSpeed(t,r);break;case"parts":e.setParts(t,r);break;case"centre":e.setCentre(t,r);break;default:t[c]=r}},e.setStatic=function(t,s){for(var r=0;r<t.parts.length;r++){var c=t.parts[r];s?(c.isStatic||(c._original={restitution:c.restitution,friction:c.friction,mass:c.mass,inertia:c.inertia,density:c.density,inverseMass:c.inverseMass,inverseInertia:c.inverseInertia}),c.restitution=0,c.friction=1,c.mass=c.inertia=c.density=1/0,c.inverseMass=c.inverseInertia=0,c.positionPrev.x=c.position.x,c.positionPrev.y=c.position.y,c.anglePrev=c.angle,c.angularVelocity=0,c.speed=0,
vendor: 4,338 bytes, line 27
27c.angularSpeed=0,c.motion=0):c._original&&(c.restitution=c._original.restitution,c.friction=c._original.friction,c.mass=c._original.mass,c.inertia=c._original.inertia,c.density=c._original.density,c.inverseMass=c._original.inverseMass,c.inverseInertia=c._original.inverseInertia,c._original=null),c.isStatic=s}},e.setMass=function(t,s){var r=t.inertia/(t.mass/6);t.inertia=r*(s/6),t.inverseInertia=1/t.inertia,t.mass=s,t.inverseMass=1/t.mass,t.density=t.mass/t.area},e.setDensity=function(t,s){e.setMass(t,s*t.area),t.density=s},e.setInertia=function(t,s){t.inertia=s,t.inverseInertia=1/t.inertia},e.setVertices=function(t,s){s[0].body===t?t.vertices=s:t.vertices=l.create(s,t),t.axes=f.fromVertices(t.vertices),t.area=l.area(t.vertices),e.setMass(t,t.density*t.area);var r=l.centre(t.vertices);l.translate(t.vertices,r,-1),e.setInertia(t,e._inertiaScale*l.inertia(t.vertices,t.mass)),l.translate(t.vertices,t.position),n.update(t.bounds,t.vertices,t.velocity)},e.setParts=function(t,s,r){var c;for(s=s.slice(0),t.parts.length=0,t.parts.push(t),t.parent=t,c=0;c<s.length;c++){var h=s[c];h!==t&&(h.parent=t,t.parts.push(h))}if(t.parts.length!==1){if(r=typeof r<"u"?r:!0,r){var v=[];for(c=0;c<s.length;c++)v=v.concat(s[c].vertices);l.clockwiseSort(v);var y=l.hull(v),M=l.centre(y);e.setVertices(t,y),l.translate(t.vertices,M)}var g=e._totalProperties(t);t.area=g.area,t.parent=t,t.position.x=g.centre.x,t.position.y=g.centre.y,t.positionPrev.x=g.centre.x,t.positionPrev.y=g.centre.y,e.setMass(t,g.mass),e.setInertia(t,g.inertia),e.setPosition(t,g.centre)}},e.setCentre=function(t,s,r){r?(t.positionPrev.x+=s.x,t.positionPrev.y+=s.y,t.position.x+=s.x,t.position.y+=s.y):(t.positionPrev.x=s.x-(t.position.x-t.positionPrev.x),t.positionPrev.y=s.y-(t.position.y-t.positionPrev.y),t.position.x=s.x,t.position.y=s.y)},e.setPosition=function(t,s,r){var c=o.sub(s,t.position);r?(t.positionPrev.x=t.position.x,t.positionPrev.y=t.position.y,t.velocity.x=c.x,t.velocity.y=c.y,t.speed=o.magnitude(c)):(t.positionPrev.x+=c.x,t.positionPrev.y+=c.y);for(var h=0;h<t.parts.length;h++){var v=t.parts[h];v.position.x+=c.x,v.position.y+=c.y,l.translate(v.vertices,c),n.update(v.bounds,v.vertices,t.velocity)}},e.setAngle=function(t,s,r){var c=s-t.angle;r?(t.anglePrev=t.angle,t.angularVelocity=c,t.angularSpeed=Math.abs(c)):t.anglePrev+=c;for(var h=0;h<t.parts.length;h++){var v=t.parts[h];v.angle+=c,l.rotate(v.vertices,c,t.position),f.rotate(v.axes,c),n.update(v.bounds,v.vertices,t.velocity),h>0&&o.rotateAbout(v.position,c,t.position,v.position)}},e.setVelocity=function(t,s){var r=t.deltaTime/e._baseDelta;t.positionPrev.x=t.position.x-s.x*r,t.positionPrev.y=t.position.y-s.y*r,t.velocity.x=(t.position.x-t.positionPrev.x)/r,t.velocity.y=(t.position.y-t.positionPrev.y)/r,t.speed=o.magnitude(t.velocity)},e.getVelocity=function(t){var s=e._baseDelta/t.deltaTime;return{x:(t.position.x-t.positionPrev.x)*s,y:(t.position.y-t.positionPrev.y)*s}},e.getSpeed=function(t){return o.magnitude(e.getVelocity(t))},e.setSpeed=function(t,s){e.setVelocity(t,o.mult(o.normalise(e.getVelocity(t)),s))},e.setAngularVelocity=function(t,s){var r=t.deltaTime/e._baseDelta;t.anglePrev=t.angle-s*r,t.angularVelocity=(t.angle-t.anglePrev)/r,t.angularSpeed=Math.abs(t.angularVelocity)},e.getAngularVelocity=function(t){return(t.angle-t.anglePrev)*e._baseDelta/t.deltaTime},e.getAngularSpeed=function(t){return Math.abs(e.getAngularVelocity(t))},e.setAngularSpeed=function(t,s){e.setAngularVelocity(t,d.sign(e.getAngularVelocity(t))*s)},e.translate=function(t,s,r){e.setPosition(t,o.add(t.position,s),r)},e.rotate=function(t,s,r,c){if(!r)e.setAngle(t,t.angle+s,c);else{var h=Math.cos(s),v=Math.sin(s),y=t.position.x-r.x,M=t.position.y-r.y;e.setPosition(t,{x:r.x+(y*h-M*v),y:r.y+(y*v+M*h)},c),e.setAngle(t,t.angle+s,c)}},e.scale=function(t,s,r,c){var h=0,v=0;c=c||t.position;for(var y=0;y<t.parts.length;y++){var M=t.parts[y];l.scale(M.vertices,s,r,c),M.axes=f.fromVertices(M.vertices),M.area=l.area(M.vertices),e.setMass(M,t.density*M.area),l.translate(M.vertices,{x:-M.position.x,y:-M.position.y}),e.setInertia(M,e._inertiaScale*l.inertia(M.vertices,M.mass)),l.translate(M.vertices,{x:M.position.x,y:M.position.y}),y>0&&(h+=M.area,v+=M.inertia),M.position.x=c.x+(M.position.x-c.x)*s,M.position.y=c.y+(M.position.y-c.y)*r,n.update(M.bounds,M.vertices,t.velocity)}t.parts.length>
271&&(t.area=h,t.isStatic||(e.setMass(t,t.density*h),e.setInertia(t,v))),t.circleRadius&&(s===r?t.circleRadius*=s:t.circleRadius=null)},e.update=function(t,s){s=(typeof s<"u"?s:1e3/60)*t.timeScale;var r=s*s,c=e._timeCorrection?s/(t.deltaTime||s):1,h=1-t.frictionAir*(s/d._baseDelta),v=(t.position.x-t.positionPrev.x)*c,y=(t.position.y-t.positionPrev.y)*c;t.velocity.x=v*h+t.force.x/t.mass*r,t.velocity.y=y*h+t.force.y/t.mass*r,t.positionPrev.x=t.position.x,t.positionPrev.y=t.position.y,t.position.x+=t.velocity.x,t.position.y+=t.velocity.y,t.deltaTime=s,t.angularVelocity=(t.angle-t.anglePrev)*h*c+t.torque/t.inertia*r,t.anglePrev=t.angle,t.angle+=t.angularVelocity;for(var M=0;M<t.parts.length;M++){var g=t.parts[M];l.translate(g.vertices,t.velocity),M>0&&(g.position.x+=t.velocity.x,g.position.y+=t.velocity.y),t.angularVelocity!==0&&(l.rotate(g.vertices,t.angularVelocity,t.position),f.rotate(g.axes,t.angularVelocity),M>0&&o.rotateAbout(g.position,t.angularVelocity,t.position,g.position)),n.update(g.bounds,g.vertices,t.velocity)}},e.updateVelocities=function(t){var s=e._baseDelta/t.deltaTime,r=t.velocity;r.x=(t.position.x-t.positionPrev.x)*s,r.y=(t.position.y-t.positionPrev.y)*s,t.speed=Math.sqrt(r.x*r.x+r.y*r.y),t.angularVelocity=(t.angle-t.anglePrev)*s,t.angularSpeed=Math.abs(t.angularVelocity)},e.applyForce=function(t,s,r){var c={x:s.x-t.position.x,y:s.y-t.position.y};t.force.x+=r.x,t.force.y+=r.y,t.torque+=c.x*r.y-c.y*r.x},e._totalProperties=function(t){for(var s={mass:0,area:0,inertia:0,centre:{x:0,y:0}},r=t.parts.length===1?0:1;r<t.parts.length;r++){var c=t.parts[r],h=c.mass!==1/0?c.mass:1;s.mass+=h,s.area+=c.area,s.inertia+=c.inertia,s.centre=o.add(s.centre,o.mult(c.position,h))}return s.centre=o.div(s.centre,s.mass),s}})()}),(function(T,E,u){var e={};T.exports=e;var l=u(0);(function(){e.on=function(o,i,d){for(var n=i.split(" "),f,a=0;a<n.length;a++)f=n[a],o.events=o.events||{},o.events[f]=o.events[f]||[],o.events[f].push(d);return d},e.off=function(o,i,d){if(!i){o.events={};return}typeof i=="function"&&(d=i,i=l.keys(o.events).join(" "));for(var n=i.split(" "),f=0;f<n.length;f++){var a=o.events[n[f]],t=[];if(d&&a)for(var s=0;s<a.length;s++)a[s]!==d&&t.push(a[s]);o.events[n[f]]=t}},e.trigger=function(o,i,d){var n,f,a,t,s=o.events;if(s&&l.keys(s).length>0){d||(d={}),n=i.split(" ");for(var r=0;r<n.length;r++)if(f=n[r],a=s[f],a){t=l.clone(d,!1),t.name=f,t.source=o;for(var c=0;c<a.length;c++)a[c].apply(o,[t])}}}})()}),(function(T,E,u){var e={};T.exports=e;var l=u(5),o=u(0),i=u(1),d=u(4);(function(){e.create=function(n){return o.extend({id:o.nextId(),type:"composite",parent:null,isModified:!1,bodies:[],constraints:[],composites:[],label:"Composite",plugin:{},cache:{allBodies:null,allConstraints:null,allComposites:null}},n)},e.setModified=function(n,f,a,t){if(n.isModified=f,f&&n.cache&&(n.cache.allBodies=null,n.cache.allConstraints=null,n.cache.allComposites=null),a&&n.parent&&e.setModified(n.parent,f,a,t),t)for(var s=0;s<n.composites.length;s++){var r=n.composites[s];e.setModified(r,f,a,t)}},e.add=function(n,f){var a=[].concat(f);l.trigger(n,"beforeAdd",{object:f});for(var t=0;t<a.length;t++){var s=a[t];switch(s.type){case"body":if(s.parent!==s){o.warn("Composite.add: skipped adding a compound body part (you must add its parent instead)");break}e.addBody(n,s);break;case"constraint":e.addConstraint(n,s);break;case"composite":e.addComposite(n,s);break;case"mouseConstraint":e.addConstraint(n,s.constraint);break}}return l.trigger(n,"afterAdd",{object:f}),n},e.remove=function(n,f,a){var t=[].concat(f);l.trigger(n,"beforeRemove",{object:f});for(var s=0;s<t.length;s++){var r=t[s];switch(r.type){case"body":e.removeBody(n,r,a);break;case"constraint":e.removeConstraint(n,r,a);break;case"composite":e.removeComposite(n,r,a);break;case"mouseConstraint":e.removeConstraint(n,r.constraint);break}}return l.trigger(n,"afterRemove",{object:f}),n},e.addComposite=function(n,f){return n.composites.push(f),f.parent=n,e.setModified(n,!0,!0,!1),n},e.removeComposite=function(n,f,a){var t=o.indexOf(n.composites,f);if(t!==-1){var s=e.allBodies(f);e.removeCompositeAt(n,t);for(var r=0;r<s.length;r++)s[r].sleepCounter=0}if(a)for(var r=0;r<n.composites.length;r++)e.removeComposite(n.composites[r],f,!0);return n},e.removeCompositeAt=function(n,f){return n.composites.splice(f,1),e.setModified(n,!0,!0,!1),n},e.addBody=function(n,f){return n.bodies.push(f),e.setModified(n,!0,!0,!1),n},e.removeBody=function(n,f,a){var t=o.indexOf(n.bodies,f);if(t!==-1&&(e.removeBodyAt(n,t),f.sleepCounter=0),a)for(var s=0;s<n.composites.length;s++)e.removeBody(n.composites[s],f,!0);return n},e.removeBodyAt=function(n,f){return n.bodies.splice(f,1),e.setModified(n,!0,!0,!1),n},e.addConstraint=function(n,f){return n.constraints.push(f),e.setModified(n,!0,!0,!1),n},e.removeConstraint=function(n,f,a){var t=o.indexOf(n.constraints,f);if(t!==-1&&e.removeConstraintAt(n,t),a)for(var s=0;s<n.composites.length;s++)e.removeConstraint(n.composites[s],f,!0);return n},e.removeConstraintAt=function(n,f){return n.constraints.splice(f,1),e.setModified(n,!0,!0,!1),n},e.clear=function(n,f,a){if(a)for(var t=0;t<n.composites.length;t++)e.clear(n.composites[t],f,!0);return f?n.bodies=n.bodies.filter(function(s){return s.isStatic}):n.bodies.length=0,n.constraints.length=0,n.composites.length=0,e.setModified(n,!0,!0,!1),n},e.allBodies=function(n){if(n.cache&&n.cache.allBodies)return n.cache.allBodies;for(var f=[].concat(n.bodies),a=0;a<n.composites.length;a++)f=f.concat(e.allBodies(n.composites[a]));return n.cache&&(n.cache.allBodies=f),f},e.allConstraints=function(n){if(n.cache&&n.cache.allConstraints)return n.cache.allConstraints;for(var f=[].concat(n.constraints),a=0;a<n.composites.length;a++)f=f.concat(e.allConstraints(n.composites[a]));return n.cache&&(n.cache.allConstraints=f),f},e.allComposites=function(n){if(n.cache&&n.cache.allComposites)return n.cache.allComposites;for(var f=[].concat(n.composites),a=0;a<n.composites.length;a++)f=f.concat(e.allComposites(n.composites[a]));return n.cache&&(n.cache.allComposites=f),f},e.get=function(n,f,a){var t,s;switch(a){case"body":t=e.allBodies(n);break;case"constraint":t=e.allConstraints(n);break;case"composite":t=e.allComposites(n).concat(n);break}return t?(s=t.filter(function(r){return r.id.toString()===f.toString()}),s.length===0?null:s[0]):null},e.move=function(n,f,a){return e.remove(n,f),e.add(a,f),n},e.rebase=function(n){for(var f=e.allBodies(n).concat(e.allConstraints(n)).concat(e.allComposites(n)),a=0;a<f.length;a++)f[a].id=o.nextId();return n},e.translate=function(n,f,a){for(var t=a?e.allBodies(n):n.bodies,s=0;s<t.length;s++)d.translate(t[s],f);return n},e.rotate=function(n,f,a,t){for(var s=Math.cos(f),r=Math.sin(f),
27c=t?e.allBodies(n):n.bodies,h=0;h<c.length;h++){var v=c[h],y=v.position.x-a.x,M=v.position.y-a.y;d.setPosition(v,{x:a.x+(y*s-M*r),y:a.y+(y*r+M*s)}),d.rotate(v,f)}return n},e.scale=function(n,f,a,t,s){for(var r=s?e.allBodies(n):n.bodies,c=0;c<r.length;c++){var h=r[c],v=h.position.x-t.x,y=h.position.y-t.y;d.setPosition(h,{x:t.x+v*f,y:t.y+y*a}),d.scale(h,f,a)}return n},e.bounds=function(n){for(var f=e.allBodies(n),a=[],t=0;t<f.length;t+=1){var s=f[t];a.push(s.bounds.min,s.bounds.max)}return i.create(a)}})()}),(function(T,E,u){var e={};T.exports=e;var l=u(4),o=u(5),i=u(0);(function(){e._motionWakeThreshold=.18,e._motionSleepThreshold=.08,e._minBias=.9,e.update=function(d,n){for(var f=n/i._baseDelta,a=e._motionSleepThreshold,t=0;t<d.length;t++){var s=d[t],r=l.getSpeed(s),c=l.getAngularSpeed(s),h=r*r+c*c;if(s.force.x!==0||s.force.y!==0){e.set(s,!1);continue}var v=Math.min(s.motion,h),y=Math.max(s.motion,h);s.motion=e._minBias*v+(1-e._minBias)*y,s.sleepThreshold>0&&s.motion<a?(s.sleepCounter+=1,s.sleepCounter>=s.sleepThreshold/f&&e.set(s,!0)):s.sleepCounter>0&&(s.sleepCounter-=1)}},e.afterCollisions=function(d){for(var n=e._motionSleepThreshold,f=0;f<d.length;f++){var a=d[f];if(a.isActive){var t=a.collision,s=t.bodyA.parent,r=t.bodyB.parent;if(!(s.isSleeping&&r.isSleeping||s.isStatic||r.isStatic)&&(s.isSleeping||r.isSleeping)){var c=s.isSleeping&&!s.isStatic?s:r,h=c===s?r:s;!c.isStatic&&h.motion>n&&e.set(c,!1)}}}},e.set=function(d,n){var f=d.isSleeping;n?(d.isSleeping=!0,d.sleepCounter=d.sleepThreshold,d.positionImpulse.x=0,d.positionImpulse.y=0,d.positionPrev.x=d.position.x,d.positionPrev.y=d.position.y,d.anglePrev=d.angle,d.speed=0,d.angularSpeed=0,d.motion=0,f||o.trigger(d,"sleepStart")):(d.isSleeping=!1,d.sleepCounter=0,f&&o.trigger(d,"sleepEnd"))}})()}),(function(T,E,u){var e={};T.exports=e;var l=u(3),o=u(9);(function(){var i=[],d={overlap:0,axis:null},n={overlap:0,axis:null};e.create=function(f,a){return{pair:null,collided:!1,bodyA:f,bodyB:a,parentA:f.parent,parentB:a.parent,depth:0,normal:{x:0,y:0},tangent:{x:0,y:0},penetration:{x:0,y:0},supports:[null,null],supportCount:0}},e.collides=function(f,a,t){if(e._overlapAxes(d,f.vertices,a.vertices,f.axes),d.overlap<=0||(e._overlapAxes(n,a.vertices,f.vertices,a.axes),n.overlap<=0))return null;var s=t&&t.table[o.id(f,a)],r;s?r=s.collision:(r=e.create(f,a),r.collided=!0,r.bodyA=f.id<a.id?f:a,r.bodyB=f.id<a.id?a:f,r.parentA=r.bodyA.parent,r.parentB=r.bodyB.parent),f=r.bodyA,a=r.bodyB;var c;d.overlap<n.overlap?c=d:c=n;var h=r.normal,v=r.tangent,y=r.penetration,M=r.supports,g=c.overlap,m=c.axis,w=m.x,p=m.y,b=a.position.x-f.position.x,P=a.position.y-f.position.y;w*b+p*P>=0&&(w=-w,p=-p),h.x=w,h.y=p,v.x=-p,v.y=w,y.x=w*g,y.y=p*g,r.depth=g;var S=e._findSupports(f,a,h,1),x=0;if(l.contains(f.vertices,S[0])&&(M[x++]=S[0]),l.contains(f.vertices,S[1])&&(M[x++]=S[1]),x<2){var B=e._findSupports(a,f,h,-1);l.contains(a.vertices,B[0])&&(M[x++]=B[0]),x<2&&l.contains(a.vertices,B[1])&&(M[x++]=B[1])}return x===0&&(M[x++]=S[0]),r.supportCount=x,r},e._overlapAxes=function(f,a,t,s){var r=a.length,c=t.length,h=a[0].x,v=a[0].y,y=t[0].x,M=t[0].y,g=s.length,m=Number.MAX_VALUE,w=0,p,b,P,S,x,B;for(x=0;x<g;x++){var I=s[x],F=I.x,N=I.y,k=h*F+v*N,H=y*F+M*N,V=k,j=H;for(B=1;B<r;B+=1)S=a[B].x*F+a[B].y*N,S>V?V=S:S<k&&(k=S);for(B=1;B<c;B+=1)S=t[B].x*F+t[B].y*N,S>j?j=S:S<H&&(H=S);if(b=V-H,P=j-k,p=b<P?b:P,p<m&&(m=p,w=x,p<=0))break}f.axis=s[w],f.overlap=m},e._findSupports=function(f,a,t,s){var r=a.vertices,c=r.length,h=f.position.x,v=f.position.y,y=t.x*s,M=t.y*s,g=r[0],m=g,w=y*(h-m.x)+M*(v-m.y),p,b,P;for(P=1;P<c;P+=1)m=r[P],b=y*(h-m.x)+M*(v-m.y),b<w&&(w=b,g=m);return p=r[(c+g.index-1)%c],w=y*(h-p.x)+M*(v-p.y),m=r[(g.index+1)%c],y*(h-m.x)+M*(v-m.y)<w?(i[0]=g,i[1]=m,i):(i[0]=g,i[1]=p,i)}})()}),(function(T,E,u){var e={};T.exports=e;var l=u(16);(function(){e.create=function(o,i){var d=o.bodyA,n=o.bodyB,f={id:e.id(d,n),bodyA:d,bodyB:n,collision:o,contacts:[l.create(),l.create()],contactCount:0,separation:0,isActive:!0,isSensor:d.isSensor||n.isSensor,timeCreated:i,timeUpdated:i,inverseMass:0,friction:0,frictionStatic:0,restitution:0,slop:0};return e.update(f,o,i),f},e.update=function(o,i,d){var n=i.supports,f=i.supportCount,a=o.contacts,t=i.parentA,s=i.parentB;o.isActive=!0,o.timeUpdated=d,o.collision=i,o.separation=i.depth,o.inverseMass=t.inverseMass+s.inverseMass,o.friction=t.friction<s.friction?t.friction:s.friction,o.frictionStatic=t.frictionStatic>s.frictionStatic?t.frictionStatic:s.frictionStatic,o.restitution=t.restitution>s.restitution?t.restitution:s.restitution,o.slop=t.slop>s.slop?t.slop:s.slop,o.contactCount=f,i.pair=o;var r=n[0],c=a[0],h=n[1],v=a[1];
27(v.vertex===r||c.vertex===h)&&(a[1]=c,a[0]=c=v,v=a[1]),c.vertex=r,v.vertex=h},e.setActive=function(o,i,d){i?(o.isActive=!0,o.timeUpdated=d):(o.isActive=!1,o.contactCount=0)},e.id=function(o,i){return o.id<i.id?o.id.toString(36)+":"+i.id.toString(36):i.id.toString(36)+":"+o.id.toString(36)}})()}),(function(T,E,u){var e={};T.exports=e;var l=u(3),o=u(2),i=u(7),d=u(1),n=u(11),f=u(0);(function(){e._warming=.4,e._torqueDampen=1,e._minLength=1e-6,e.create=function(a){var t=a;t.bodyA&&!t.pointA&&(t.pointA={x:0,y:0}),t.bodyB&&!t.pointB&&(t.pointB={x:0,y:0});var s=t.bodyA?o.add(t.bodyA.position,t.pointA):t.pointA,r=t.bodyB?o.add(t.bodyB.position,t.pointB):t.pointB,c=o.magnitude(o.sub(s,r));t.length=typeof t.length<"u"?t.length:c,t.id=t.id||f.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 h={visible:!0,lineWidth:2,strokeStyle:"#ffffff",type:"line",anchors:!0};return t.length===0&&t.stiffness>.1?(h.type="pin",h.anchors=!1):t.stiffness<.9&&(h.type="spring"),t.render=f.extend(h,t.render),t},e.preSolveAll=function(a){for(var t=0;t<a.length;t+=1){var s=a[t],r=s.constraintImpulse;s.isStatic||r.x===0&&r.y===0&&r.angle===0||(s.position.x+=r.x,s.position.y+=r.y,s.angle+=r.angle)}},e.solveAll=function(a,t){for(var s=f.clamp(t/f._baseDelta,0,1),r=0;r<a.length;r+=1){var c=a[r],h=!c.bodyA||c.bodyA&&c.bodyA.isStatic,v=!c.bodyB||c.bodyB&&c.bodyB.isStatic;(h||v)&&e.solve(a[r],s)}for(r=0;r<a.length;r+=1)c=a[r],h=!c.bodyA||c.bodyA&&c.bodyA.isStatic,v=!c.bodyB||c.bodyB&&c.bodyB.isStatic,!h&&!v&&e.solve(a[r],s)},e.solve=function(a,t){var s=a.bodyA,r=a.bodyB,c=a.pointA,h=a.pointB;if(!(!s&&!r)){s&&!s.isStatic&&(o.rotate(c,s.angle-a.angleA,c),a.angleA=s.angle),r&&!r.isStatic&&(o.rotate(h,r.angle-a.angleB,h),a.angleB=r.angle);var v=c,y=h;if(s&&(v=o.add(s.position,c)),r&&(y=o.add(r.position,h)),!(!v||!y)){var M=o.sub(v,y),g=o.magnitude(M);g<e._minLength&&(g=e._minLength);var m=(g-a.length)/g,w=a.stiffness>=1||a.length===0,p=w?a.stiffness*t:a.stiffness*t*t,b=a.damping*t,P=o.mult(M,m*p),S=(s?s.inverseMass:0)+(r?r.inverseMass:0),x=(s?s.inverseInertia:0)+(r?r.inverseInertia:0),B=S+x,I,F,N,k,H;if(b>0){var V=o.create();N=o.div(M,g),H=o.sub(r&&o.sub(r.position,r.positionPrev)||V,s&&o.sub(s.position,s.positionPrev)||V),k=o.dot(N,H)}s&&!s.isStatic&&(F=s.inverseMass/S,s.constraintImpulse.x-=P.x*F,s.constraintImpulse.y-=P.y*F,s.position.x-=P.x*F,s.position.y-=P.y*F,b>0&&(s.positionPrev.x-=b*N.x*k*F,s.positionPrev.y-=b*N.y*k*F),I=o.cross(c,P)/B*e._torqueDampen*s.inverseInertia*(1-a.angularStiffness),s.constraintImpulse.angle-=I,s.angle-=I),r&&!r.isStatic&&(F=r.inverseMass/S,r.constraintImpulse.x+=P.x*F,r.constraintImpulse.y+=P.y*F,r.position.x+=P.x*F,r.position.y+=P.y*F,b>0&&(r.positionPrev.x+=b*N.x*k*F,r.positionPrev.y+=b*N.y*k*F),I=o.cross(h,P)/B*e._torqueDampen*r.inverseInertia*(1-a.angularStiffness),r.constraintImpulse.angle+=I,r.angle+=I)}}},e.postSolveAll=function(a){for(var t=0;t<a.length;t++){var s=a[t],r=s.constraintImpulse;if(!(s.isStatic||r.x===0&&r.y===0&&r.angle===0)){i.set(s,!1);for(var c=0;c<s.parts.length;c++){var h=s.parts[c];l.translate(h.vertices,r),c>0&&(h.position.x+=r.x,h.position.y+=r.y),r.angle!==0&&(l.rotate(h.vertices,r.angle,s.position),n.rotate(h.axes,r.angle),c>0&&o.rotateAbout(h.position,r.angle,s.position,h.position)),d.update(h.bounds,h.vertices,s.velocity)}r.angle*=e._warming,r.x*=e._warming,r.y*=e._warming}}},e.pointAWorld=function(a){return{x:(a.bodyA?a.bodyA.position.x:0)+(a.pointA?a.pointA.x:0),y:(a.bodyA?a.bodyA.position.y:0)+(a.pointA?a.pointA.y:0)}},e.pointBWorld=function(a){return{x:(a.bodyB?a.bodyB.position.x:0)+(a.pointB?a.pointB.x:0),y:(a.bodyB?a.bodyB.position.y:0)+(a.pointB?a.pointB.y:0)}},e.currentLength=function(a){var t=(a.bodyA?a.bodyA.position.x:0)+(a.pointA?a.pointA.x:0),s=(a.bodyA?a.bodyA.position.y:0)+(a.pointA?a.pointA.y:0),r=(a.bodyB?a.bodyB.position.x:0)+(a.pointB?a.pointB.x:0),c=(a.bodyB?a.bodyB.position.y:0)+(a.pointB?a.pointB.y:0),h=t-r,v=s-c;return Math.sqrt(h*h+v*v)}})()}),(function(T,E,u){var e={};T.exports=e;var l=u(2),o=u(0);(function(){e.fromVertices=function(i){for(var d={},n=0;n<i.length;n++){var f=(n+1)%i.length,a=l.normalise({x:i[f].y-i[n].y,y:i[n].x-i[f].x}),t=a.y===0?1/0:a.x/a.y;t=t.toFixed(3).toString(),d[t]=a}return o.values(d)},e.rotate=function(i,d){if(d!==0)for(var n=Math.cos(d),f=Math.sin(d),a=0;a<i.length;a++){var t=i[a],s;s=t.x*n-t.y*f,t.y=t.x*f+t.y*n,t.x=s}}})()}),(function(T,E,u){var e={};T.exports=e;var l=u(3),o=u(0),i=u(4),d=u(1),n=u(2);(function(){e.rectangle=function(f,a,t,s,r){r=r||{};var c={label:"Rectangle Body",position:{x:f,y:a},vertices:l.fromPath("L 0 0 L "+t+" 0 L "+t+" "+s+" L 0 "+s)};if(r.chamfer){var h=r.chamfer;
27c.vertices=l.chamfer(c.vertices,h.radius,h.quality,h.qualityMin,h.qualityMax),delete r.chamfer}return i.create(o.extend({},c,r))},e.trapezoid=function(f,a,t,s,r,c){c=c||{},r>=1&&o.warn("Bodies.trapezoid: slope parameter must be < 1."),r*=.5;var h=(1-r*2)*t,v=t*r,y=v+h,M=y+v,g;r<.5?g="L 0 0 L "+v+" "+-s+" L "+y+" "+-s+" L "+M+" 0":g="L 0 0 L "+y+" "+-s+" L "+M+" 0";var m={label:"Trapezoid Body",position:{x:f,y:a},vertices:l.fromPath(g)};if(c.chamfer){var w=c.chamfer;m.vertices=l.chamfer(m.vertices,w.radius,w.quality,w.qualityMin,w.qualityMax),delete c.chamfer}return i.create(o.extend({},m,c))},e.circle=function(f,a,t,s,r){s=s||{};var c={label:"Circle Body",circleRadius:t};r=r||25;var h=Math.ceil(Math.max(10,Math.min(r,t)));return h%2===1&&(h+=1),e.polygon(f,a,h,t,o.extend({},c,s))},e.polygon=function(f,a,t,s,r){if(r=r||{},t<3)return e.circle(f,a,s,r);for(var c=2*Math.PI/t,h="",v=c*.5,y=0;y<t;y+=1){var M=v+y*c,g=Math.cos(M)*s,m=Math.sin(M)*s;h+="L "+g.toFixed(3)+" "+m.toFixed(3)+" "}var w={label:"Polygon Body",position:{x:f,y:a},vertices:l.fromPath(h)};if(r.chamfer){var p=r.chamfer;w.vertices=l.chamfer(w.vertices,p.radius,p.quality,p.qualityMin,p.qualityMax),delete r.chamfer}return i.create(o.extend({},w,r))},e.fromVertices=function(f,a,t,s,r,c,h,v){var y=o.getDecomp(),M,g,m,w,p,b,P,S,x,B,I;for(M=!!(y&&y.quickDecomp),s=s||{},m=[],r=typeof r<"u"?r:!1,c=typeof c<"u"?c:.01,h=typeof h<"u"?h:10,v=typeof v<"u"?v:.01,o.isArray(t[0])||(t=[t]),B=0;B<t.length;B+=1)if(b=t[B],w=l.isConvex(b),p=!w,p&&!M&&o.warnOnce("Bodies.fromVertices: Install the 'poly-decomp' library and use Common.setDecomp or provide 'decomp' as a global to decompose concave vertices."),w||!M)w?b=l.clockwiseSort(b):b=l.hull(b),m.push({position:{x:f,y:a},vertices:b});else{var F=b.map(function(z){return[z.x,z.y]});y.makeCCW(F),c!==!1&&y.removeCollinearPoints(F,c),v!==!1&&y.removeDuplicatePoints&&y.removeDuplicatePoints(F,v);var N=y.quickDecomp(F);for(P=0;P<N.length;P++){var k=N[P],H=k.map(function(z){return{x:z[0],y:z[1]}});h>0&&l.area(H)<h||m.push({position:l.centre(H),vertices:H})}}for(P=0;P<m.length;P++)m[P]=i.create(o.extend(m[P],s));if(r){var V=5;for(P=0;P<m.length;P++){var j=m[P];for(S=P+1;S<m.length;S++){var U=m[S];if(d.overlaps(j.bounds,U.bounds)){var G=j.vertices,$=U.vertices;for(x=0;x<j.vertices.length;x++)for(I=0;I<U.vertices.length;I++){var oe=n.magnitudeSquared(n.sub(G[(x+1)%G.length],$[I])),_=n.magnitudeSquared(n.sub(G[x],$[(I+1)%$.length]));oe<V&&_<V&&(G[x].isInternal=!0,$[I].isInternal=!0)}}}}}return m.length>1?(g=i.create(o.extend({parts:m.slice(0)},s)),i.setPosition(g,{x:f,y:a}),g):m[0]}})()}),(function(T,E,u){var e={};T.exports=e;var l=u(0),o=u(8);(function(){e.create=function(i){var d={bodies:[],collisions:[],pairs:null};return l.extend(d,i)},e.setBodies=function(i,d){i.bodies=d.slice(0)},e.clear=function(i){i.bodies=[],i.collisions=[]},e.collisions=function(i){var d=i.pairs,n=i.bodies,f=n.length,a=e.canCollide,t=o.collides,s=i.collisions,r=0,c,h;for(n.sort(e._compareBoundsX),c=0;c<f;c++){var v=n[c],y=v.bounds,M=v.bounds.max.x,g=v.bounds.max.y,m=v.bounds.min.y,w=v.isStatic||v.isSleeping,p=v.parts.length,b=p===1;for(h=c+1;h<f;h++){var P=n[h],S=P.bounds;if(S.min.x>M)break;if(!(g<S.min.y||m>S.max.y)&&!(w&&(P.isStatic||P.isSleeping))&&a(v.collisionFilter,P.collisionFilter)){var x=P.parts.length;if(b&&x===1){var B=t(v,P,d);B&&(s[r++]=B)}else for(var I=p>1?1:0,F=x>1?1:0,N=I;N<p;N++)for(var k=v.parts[N],y=k.bounds,H=F;H<x;H++){var V=P.parts[H],S=V.bounds;if(!(y.min.x>S.max.x||y.max.x<S.min.x||y.max.y<S.min.y||y.min.y>S.max.y)){var B=t(k,V,d);B&&(s[r++]=B)}}}}}return s.length!==r&&(s.length=r),s},e.canCollide=function(i,d){return i.group===d.group&&i.group!==0?i.group>0:(i.mask&d.category)!==0&&(d.mask&i.category)!==0},e._compareBoundsX=function(i,d){return i.bounds.min.x-d.bounds.min.x}})()}),(function(T,E,u){var e={};T.exports=e;var l=u(0);(function(){e.create=function(o){var i={};return o||l.log("Mouse.create: element was undefined, defaulting to document.body","warn"),i.element=o||document.body,i.absolute={x:0,y:0},i.position={x:0,y:0},i.mousedownPosition={x:0,y:0},i.mouseupPosition={x:0,y:0},i.offset={x:0,y:0},i.scale={x:1,y:1},i.wheelDelta=0,i.button=-1,i.pixelRatio=parseInt(i.element.getAttribute("data-pixel-ratio"),10)||1,i.sourceEvents={mousemove:null,mousedown:null,mouseup:null,mousewheel:null},i.mousemove=function(d){var n=e._getRelativeMousePosition(d,i.element,i.pixelRatio),f=d.changedTouches;f&&(i.button=0,d.preventDefault()),i.absolute.x=n.x,i.absolute.y=n.y,i.position.x=i.absolute.x*i.scale.x+i.offset.x,i.position.y=i.absolute.y*i.scale.y+i.offset.y,i.sourceEvents.mousemove=d},i.mousedown=function(d){var n=e._getRelativeMousePosition(d,i.element,i.pixelRatio),f=d.changedTouches;f?(i.button=0,d.preventDefault()):i.button=d.button,i.absolute.x=n.x,i.absolute.y=n.y,i.position.x=i.absolute.x*i.scale.x+i.offset.x,i.position.y=i.absolute.y*i.scale.y+i.offset.y,i.mousedownPosition.x=i.position.x,i.mousedownPosition.y=i.position.y,i.sourceEvents.mousedown=d},i.mouseup=function(d){var n=e._getRelativeMousePosition(d,i.element,i.pixelRatio),f=d.changedTouches;f&&d.preventDefault(),i.button=-1,i.absolute.x=n.x,i.absolute.y=n.y,i.position.x=i.absolute.x*i.scale.x+i.offset.x,i.position.y=i.absolute.y*i.scale.y+i.offset.y,i.mouseupPosition.x=i.position.x,i.mouseupPosition.y=i.position.y,i.sourceEvents.mouseup=d},i.mousewheel=function(d){i.wheelDelta=Math.max(-1,Math.min(1,d.wheelDelta||-d.detail)),d.preventDefault(),i.sourceEvents.mousewheel=d},e.setElement(i,i.element),i},e.setElement=function(o,i){o.element=i,i.addEventListener("mousemove",o.mousemove,{passive:!0}),i.addEventListener("mousedown",o.mousedown,{passive:!0}),i.addEventListener("mouseup",o.mouseup,{passive:!0}),i.addEventListener("wheel",o.mousewheel,{passive:!1}),i.addEventListener("touchmove",o.mousemove,{passive:!1}
27),i.addEventListener("touchstart",o.mousedown,{passive:!1}),i.addEventListener("touchend",o.mouseup,{passive:!1})},e.clearSourceEvents=function(o){o.sourceEvents.mousemove=null,o.sourceEvents.mousedown=null,o.sourceEvents.mouseup=null,o.sourceEvents.mousewheel=null,o.wheelDelta=0},e.setOffset=function(o,i){o.offset.x=i.x,o.offset.y=i.y,o.position.x=o.absolute.x*o.scale.x+o.offset.x,o.position.y=o.absolute.y*o.scale.y+o.offset.y},e.setScale=function(o,i){o.scale.x=i.x,o.scale.y=i.y,o.position.x=o.absolute.x*o.scale.x+o.offset.x,o.position.y=o.absolute.y*o.scale.y+o.offset.y},e._getRelativeMousePosition=function(o,i,d){var n=i.getBoundingClientRect(),f=document.documentElement||document.body.parentNode||document.body,a=window.pageXOffset!==void 0?window.pageXOffset:f.scrollLeft,t=window.pageYOffset!==void 0?window.pageYOffset:f.scrollTop,s=o.changedTouches,r,c;return s?(r=s[0].pageX-n.left-a,c=s[0].pageY-n.top-t):(r=o.pageX-n.left-a,c=o.pageY-n.top-t),{x:r/(i.clientWidth/(i.width||i.clientWidth)*d),y:c/(i.clientHeight/(i.height||i.clientHeight)*d)}}})()}),(function(T,E,u){var e={};T.exports=e;var l=u(0);(function(){e._registry={},e.register=function(o){if(e.isPlugin(o)||l.warn("Plugin.register:",e.toString(o),"does not implement all required fields."),o.name in e._registry){var i=e._registry[o.name],d=e.versionParse(o.version).number,n=e.versionParse(i.version).number;d>n?(l.warn("Plugin.register:",e.toString(i),"was upgraded to",e.toString(o)),e._registry[o.name]=o):d<n?l.warn("Plugin.register:",e.toString(i),"can not be downgraded to",e.toString(o)):o!==i&&l.warn("Plugin.register:",e.toString(o),"is already registered to different plugin object")}else e._registry[o.name]=o;return o},e.resolve=function(o){return e._registry[e.dependencyParse(o).name]},e.toString=function(o){return typeof o=="string"?o:(o.name||"anonymous")+"@"+(o.version||o.range||"0.0.0")},e.isPlugin=function(o){return o&&o.name&&o.version&&o.install},e.isUsed=function(o,i){return o.used.indexOf(i)>-1},e.isFor=function(o,i){var d=o.for&&e.dependencyParse(o.for);return!o.for||i.name===d.name&&e.versionSatisfies(i.version,d.range)},e.use=function(o,i){if(o.uses=(o.uses||[]).concat(i||[]),o.uses.length===0){l.warn("Plugin.use:",e.toString(o),"does not specify any dependencies to install.");return}for(var d=e.dependencies(o),n=l.topologicalSort(d),f=[],a=0;a<n.length;a+=1)if(n[a]!==o.name){var t=e.resolve(n[a]);if(!t){f.push("❌ "+n[a]);continue}e.isUsed(o,t.name)||(e.isFor(t,o)||(l.warn("Plugin.use:",e.toString(t),"is for",t.for,"but installed on",e.toString(o)+"."),t._warned=!0),t.install?t.install(o):(l.warn("Plugin.use:",e.toString(t),"does not specify an install function."),t._warned=!0),t._warned?(f.push("🔶 "+e.toString(t)),delete t._warned):f.push("✅ "+e.toString(t)),o.used.push(t.name))}f.length>0&&l.info(f.join("  "))},e.dependencies=function(o,i){var d=e.dependencyParse(o),n=d.name;if(i=i||{},!(n in i)){o=e.resolve(o)||o,i[n]=l.map(o.uses||[],function(a){e.isPlugin(a)&&e.register(a);var t=e.dependencyParse(a),s=e.resolve(a);return s&&!e.versionSatisfies(s.version,t.range)?(l.warn("Plugin.dependencies:",e.toString(s),"does not satisfy",e.toString(t),"used by",e.toString(d)+"."),s._warned=!0,o._warned=!0):s||(l.warn("Plugin.dependencies:",e.toString(a),"used by",e.toString(d),"could not be resolved."),o._warned=!0),t.name});for(var f=0;f<i[n].length;f+=1)e.dependencies(i[n][f],i);return i}},e.dependencyParse=function(o){if(l.isString(o)){var i=/^[\w-]+(@(\*|[\^~]?\d+\.\d+\.\d+(-[0-9A-Za-z-+]+)?))?$/;return i.test(o)||l.warn("Plugin.dependencyParse:",o,"is not a valid dependency string."),{name:o.split("@")[0],range:o.split("@")[1]||"*"}}return{name:o.name,range:o.range||o.version}},e.versionParse=function(o){var i=/^(\*)|(\^|~|>=|>)?\s*((\d+)\.(\d+)\.(\d+))(-[0-9A-Za-z-+]+)?$/;i.test(o)||l.warn("Plugin.versionParse:",o,"is not a valid version or range.");var d=i.exec(o),n=Number(d[4]),f=Number(d[5]),a=Number(d[6]);return{isRange:!!(d[1]||d[2]),version:d[3],range:o,operator:d[1]||d[2]||"",major:n,minor:f,patch:a,parts:[n,f,a],prerelease:d[7],number:n*1e8+f*1e4+a}}
27,e.versionSatisfies=function(o,i){i=i||"*";var d=e.versionParse(i),n=e.versionParse(o);if(d.isRange){if(d.operator==="*"||o==="*")return!0;if(d.operator===">")return n.number>d.number;if(d.operator===">=")return n.number>=d.number;if(d.operator==="~")return n.major===d.major&&n.minor===d.minor&&n.patch>=d.patch;if(d.operator==="^")return d.major>0?n.major===d.major&&n.number>=d.number:d.minor>0?n.minor===d.minor&&n.patch>=d.patch:n.patch===d.patch}return o===i||o==="*"}})()}),(function(T,E){var u={};T.exports=u,(function(){u.create=function(e){return{vertex:e,normalImpulse:0,tangentImpulse:0}}})()}),(function(T,E,u){var e={};T.exports=e;var l=u(7),o=u(18),i=u(13),d=u(19),n=u(5),f=u(6),a=u(10),t=u(0),s=u(4);(function(){e._deltaMax=1e3/60,e.create=function(r){r=r||{};var c={positionIterations:6,velocityIterations:4,constraintIterations:2,enableSleeping:!1,events:[],plugin:{},gravity:{x:0,y:1,scale:.001},timing:{timestamp:0,timeScale:1,lastDelta:0,lastElapsed:0,lastUpdatesPerFrame:0}},h=t.extend(c,r);return h.world=r.world||f.create({label:"World"}),h.pairs=r.pairs||d.create(),h.detector=r.detector||i.create(),h.detector.pairs=h.pairs,h.grid={buckets:[]},h.world.gravity=h.gravity,h.broadphase=h.grid,h.metrics={},h},e.update=function(r,c){var h=t.now(),v=r.world,y=r.detector,M=r.pairs,g=r.timing,m=g.timestamp,w;c>e._deltaMax&&t.warnOnce("Matter.Engine.update: delta argument is recommended to be less than or equal to",e._deltaMax.toFixed(3),"ms."),c=typeof c<"u"?c:t._baseDelta,c*=g.timeScale,g.timestamp+=c,g.lastDelta=c;var p={timestamp:g.timestamp,delta:c};n.trigger(r,"beforeUpdate",p);var b=f.allBodies(v),P=f.allConstraints(v);for(v.isModified&&(i.setBodies(y,b),f.setModified(v,!1,!1,!0)),r.enableSleeping&&l.update(b,c),e._bodiesApplyGravity(b,r.gravity),c>0&&e._bodiesUpdate(b,c),n.trigger(r,"beforeSolve",p),a.preSolveAll(b),w=0;w<r.constraintIterations;w++)a.solveAll(P,c);a.postSolveAll(b);var S=i.collisions(y);d.update(M,S,m),r.enableSleeping&&l.afterCollisions(M.list),M.collisionStart.length>0&&n.trigger(r,"collisionStart",{pairs:M.collisionStart,timestamp:g.timestamp,delta:c});var x=t.clamp(20/r.positionIterations,0,1);for(o.preSolvePosition(M.list),w=0;w<r.positionIterations;w++)o.solvePosition(M.list,c,x);for(o.postSolvePosition(b),a.preSolveAll(b),w=0;w<r.constraintIterations;w++)a.solveAll(P,c);for(a.postSolveAll(b),o.preSolveVelocity(M.list),w=0;w<r.velocityIterations;w++)o.solveVelocity(M.list,c);return e._bodiesUpdateVelocities(b),M.collisionActive.length>0&&n.trigger(r,"collisionActive",{pairs:M.collisionActive,timestamp:g.timestamp,delta:c}),M.collisionEnd.length>0&&n.trigger(r,"collisionEnd",{pairs:M.collisionEnd,timestamp:g.timestamp,delta:c}),e._bodiesClearForces(b),n.trigger(r,"afterUpdate",p),r.timing.lastElapsed=t.now()-h,r},e.merge=function(r,c){if(t.extend(r,c),c.world){r.world=c.world,e.clear(r);for(var h=f.allBodies(r.world),v=0;v<h.length;v++){var y=h[v];l.set(y,!1),y.id=t.nextId()}}},e.clear=function(r){d.clear(r.pairs),i.clear(r.detector)},e._bodiesClearForces=function(r){for(var c=r.length,h=0;h<c;h++){var v=r[h];v.force.x=0,v.force.y=0,v.torque=0}},e._bodiesApplyGravity=function(r,c){var h=typeof c.scale<"u"?c.scale:.001,v=r.length;if(!(c.x===0&&c.y===0||h===0))for(var y=0;y<v;y++){var M=r[y];M.isStatic||M.isSleeping||(M.force.y+=M.mass*c.y*h,M.force.x+=M.mass*c.x*h)}},e._bodiesUpdate=function(r,c){for(var h=r.length,v=0;v<h;v++){var y=r[v];y.isStatic||y.isSleeping||s.update(y,c)}},e._bodiesUpdateVelocities=function(r){for(var c=r.length,h=0;h<c;h++)s.updateVelocities(r[h])}})()}),(function(T,E,u){var e={};T.exports=e;var l=u(3),o=u(0),i=u(1);(function(){e._restingThresh=2,e._restingThreshTangent=Math.sqrt(6),e._positionDampen=.9,e._positionWarming=.8,e._frictionNormalMultiplier=5,e._frictionMaxStatic=Number.MAX_VALUE,e.preSolvePosition=function(d){var n,f,a,t=d.length;for(n=0;n<t;n++)f=d[n],f.isActive&&(a=f.contactCount,f.collision.parentA.totalContacts+=a,f.collision.parentB.totalContacts+=a)},e.solvePosition=function(d,n,f){var a,t,s,r,c,h,v,y,M=e._positionDampen*(f||1),g=o.clamp(n/o._baseDelta,0,1),m=d.length;for(a=0;a<m;a++)t=d[a],!(!t.isActive||t.isSensor)&&(s=t.collision,r=s.parentA,c=s.parentB,h=s.normal,t.separation=s.depth+h.x*(c.positionImpulse.x-r.positionImpulse.x)+h.y*(c.positionImpulse.y-r.positionImpulse.y));for(a=0;a<m;a++)t=d[a],!(!t.isActive||t.isSensor)&&(s=t.collision,r=s.parentA,c=s.parentB,h=s.normal,y=t.separation-t.slop*g,(r.isStatic||c.isStatic)&&(y*=2),r.isStatic||r.isSleeping||(v=M/r.totalContacts,r.positionImpulse.x+=h.x*y*v,r.positionImpulse.y+=h.y*y*v),c.isStatic||c.isSleeping||(v=M/c.totalContacts,c.positionImpulse.x-=h.x*y*v,c.positionImpulse.y-=h.y*y*v))},e.postSolvePosition=function(d){for(var n=e._positionWarming,f=d.length,a=l.translate,t=i.update,s=0;s<f;s++){var r=d[s],c=r.positionImpulse,h=c.x,v=c.y,y=r.velocity;if(r.totalContacts=0,h!==0||v!==0){for(var M=0;M<r.parts.length;M++){var g=r.parts[M];
27a(g.vertices,c),t(g.bounds,g.vertices,y),g.position.x+=h,g.position.y+=v}r.positionPrev.x+=h,r.positionPrev.y+=v,h*y.x+v*y.y<0?(c.x=0,c.y=0):(c.x*=n,c.y*=n)}}},e.preSolveVelocity=function(d){var n=d.length,f,a;for(f=0;f<n;f++){var t=d[f];if(!(!t.isActive||t.isSensor)){var s=t.contacts,r=t.contactCount,c=t.collision,h=c.parentA,v=c.parentB,y=c.normal,M=c.tangent;for(a=0;a<r;a++){var g=s[a],m=g.vertex,w=g.normalImpulse,p=g.tangentImpulse;if(w!==0||p!==0){var b=y.x*w+M.x*p,P=y.y*w+M.y*p;h.isStatic||h.isSleeping||(h.positionPrev.x+=b*h.inverseMass,h.positionPrev.y+=P*h.inverseMass,h.anglePrev+=h.inverseInertia*((m.x-h.position.x)*P-(m.y-h.position.y)*b)),v.isStatic||v.isSleeping||(v.positionPrev.x-=b*v.inverseMass,v.positionPrev.y-=P*v.inverseMass,v.anglePrev-=v.inverseInertia*((m.x-v.position.x)*P-(m.y-v.position.y)*b))}}}}},e.solveVelocity=function(d,n){var f=n/o._baseDelta,a=f*f,t=a*f,s=-e._restingThresh*f,r=e._restingThreshTangent,c=e._frictionNormalMultiplier*f,h=e._frictionMaxStatic,v=d.length,y,M,g,m;for(g=0;g<v;g++){var w=d[g];if(!(!w.isActive||w.isSensor)){var p=w.collision,b=p.parentA,P=p.parentB,S=p.normal.x,x=p.normal.y,B=p.tangent.x,I=p.tangent.y,F=w.inverseMass,N=w.friction*w.frictionStatic*c,k=w.contacts,H=w.contactCount,V=1/H,j=b.position.x-b.positionPrev.x,U=b.position.y-b.positionPrev.y,G=b.angle-b.anglePrev,$=P.position.x-P.positionPrev.x,oe=P.position.y-P.positionPrev.y,_=P.angle-P.anglePrev;for(m=0;m<H;m++){var z=k[m],ee=z.vertex,K=ee.x-b.position.x,le=ee.y-b.position.y,te=ee.x-P.position.x,ne=ee.y-P.position.y,Q=j-le*G,ve=U+K*G,We=$-ne*_,je=oe+te*_,Te=Q-We,Be=ve-je,Ce=S*Te+x*Be,ie=B*Te+I*Be,Ee=w.separation+Ce,Me=Math.min(Ee,1);Me=Ee<0?0:Me;var Re=Me*N;ie<-Re||ie>Re?(M=ie>0?ie:-ie,y=w.friction*(ie>0?1:-1)*t,y<-M?y=-M:y>M&&(y=M)):(y=ie,M=h);var Le=K*x-le*S,Ae=te*x-ne*S,Ie=V/(F+b.inverseInertia*Le*Le+P.inverseInertia*Ae*Ae),me=(1+w.restitution)*Ce*Ie;if(y*=Ie,Ce<s)z.normalImpulse=0;else{var De=z.normalImpulse;z.normalImpulse+=me,z.normalImpulse>0&&(z.normalImpulse=0),me=z.normalImpulse-De}if(ie<-r||ie>r)z.tangentImpulse=0;else{var Ve=z.tangentImpulse;z.tangentImpulse+=y,z.tangentImpulse<-M&&(z.tangentImpulse=-M),z.tangentImpulse>M&&(z.tangentImpulse=M),y=z.tangentImpulse-Ve}var pe=S*me+B*y,xe=x*me+I*y;b.isStatic||b.isSleeping||(b.positionPrev.x+=pe*b.inverseMass,b.positionPrev.y+=xe*b.inverseMass,b.anglePrev+=(K*xe-le*pe)*b.inverseInertia),P.isStatic||P.isSleeping||(P.positionPrev.x-=pe*P.inverseMass,P.positionPrev.y-=xe*P.inverseMass,P.anglePrev-=(te*xe-ne*pe)*P.inverseInertia)}}}}})()}),(function(T,E,u){var e={};T.exports=e;var l=u(9),o=u(0);(function(){e.create=function(i){return o.extend({table:{},list:[],collisionStart:[],collisionActive:[],collisionEnd:[]},i)},e.update=function(i,d,n){var f=l.update,a=l.create,t=l.setActive,s=i.table,r=i.list,c=r.length,h=c,v=i.collisionStart,y=i.collisionEnd,M=i.collisionActive,g=d.length,m=0,w=0,p=0,b,P,S;for(S=0;S<g;S++)b=d[S],P=b.pair,P?(P.isActive&&(M[p++]=P),f(P,b,n)):(P=a(b,n),s[P.id]=P,v[m++]=P,r[h++]=P);for(h=0,c=r.length,S=0;S<c;S++)P=r[S],P.timeUpdated>=n?r[h++]=P:(t(P,!1,n),P.collision.bodyA.sleepCounter>0&&P.collision.bodyB.sleepCounter>0?r[h++]=P:(y[w++]=P,delete s[P.id]));r.length!==h&&(r.length=h),v.length!==m&&(v.length=m),y.length!==w&&(y.length=w),M.length!==p&&(M.length=p)},e.clear=function(i){return i.table={},i.list.length=0,i.collisionStart.length=0,i.collisionActive.length=0,i.collisionEnd.length=0,i}})()}),(function(T,E,u){var e=T.exports=u(21);e.Axes=u(11),e.Bodies=u(12),e.Body=u(4),e.Bounds=u(1),e.Collision=u(8),e.Common=u(0),e.Composite=u(6),e.Composites=u(22),e.Constraint=u(10),e.Contact=u(16),e.Detector=u(13),e.Engine=u(17),e.Events=u(5),e.Grid=u(23),e.Mouse=u(14),e.MouseConstraint=u(24),e.Pair=u(9),e.Pairs=u(19),e.Plugin=u(15),e.Query=u(25),e.Render=u(26),e.Resolver=u(18),e.Runner=u(27),e.SAT=u(28),e.Sleeping=u(7),e.Svg=u(29),e.Vector=u(2),e.Vertices=u(3),e.World=u(30),e.Engine.run=e.Runner.run,e.Common.deprecated(e.Engine,"run","Engine.run ➤ use Matter.Runner.run(engine) instead")}),(function(T,E,u){var e={};T.exports=e;var l=u(15),o=u(0);(function(){e.name="matter-js",e.version="0.20.0",e.uses=[],e.used=[],e.use=function(){l.use(e,Array.prototype.slice.call(arguments))},e.before=function(i,d){return i=i.replace(/^Matter./,""),o.chainPathBefore(e,i,d)},e.after=function(i,d){return i=i.replace(/^Matter./,""),o.chainPathAfter(e,i,d)}})()}),(function(T,E,u){var e={};T.exports=e;var l=u(6),o=u(10),i=u(0),d=u(4),n=u(12),f=i.deprecated;(function(){e.stack=function(a,t,s,r,c,h,v){for(var y=l.create({label:"Stack"}),M=a,g=t,m,w=0,p=0;p<r;p++){for(var b=0,P=0;P<s;P++){var S=v(M,g,P,p,m,w);if(S){var x=S.bounds.max.y-S.bounds.min.y,B=S.bounds.max.x-S.bounds.min.x;x>b&&(b=x),d.translate(S,{x:B*.5,y:x*.5}),M=S.bounds.max.x+c,l.addBody(y,S),m=S,w+=1}else M+=c}g+=b+h,M=a}return y},e.chain=function(a,t,s,r,c,h){for(var v=a.bodies,y=1;y<v.length;y++){var M=v[y-1],g=v[y],m=M.bounds.max.y-M.bounds.min.y,w=M.bounds.max.x-M.bounds.min.x,p=g.bounds.max.y-g.bounds.min.y,b=g.bounds.max.x-g.bounds.min.x,P={bodyA:M,pointA:{x:w*t,y:m*s},bodyB:g,pointB:{x:b*r,y:p*c}},S=i.extend(P,h);l.addConstraint(a,o.create(S))}return a.label+=" Chain",a},e.mesh=function(a,t,s,r,c){var h=a.bodies,v,y,M,g,m;for(v=0;v<s;v++){for(y=1;y<t;y++)M=h[y-1+v*t],g=h[y+v*t],l.addConstraint(a,o.create(i.extend({bodyA:M,bodyB:g},c)));if(v>0)for(y=0;y<t;y++)M=h[y+(v-1)*t],g=h[y+v*t],l.addConstraint(a,o.create(i.extend({bodyA:M,bodyB:g},c))),r&&y>0&&(m=h[y-1+(v-1)*t],l.addConstraint(a,o.create(i.extend({bodyA:m,bodyB:g},c)))),r&&y<t-1&&(m=h[y+1+(v-1)*t],l.addConstraint(a,o.create(i.extend({bodyA:m,bodyB:g},c))))}return a.label+=" Mesh",a},e.pyramid=function(a,t,s,r,c,h,v){return e.stack(a,t,s,r,c,h,function(y,M,g,m,w,p){var b=Math.min(r,Math.ceil(s/2)),P=w?w.bounds.max.x-w.bounds.min.x:0;if(!(m>b)){m=b-m;var S=m,x=s-1-m;if(!(g<S||g>
27x)){p===1&&d.translate(w,{x:(g+(s%2===1?1:-1))*P,y:0});var B=w?g*P:0;return v(a+B+g*c,M,g,m,w,p)}}})},e.newtonsCradle=function(a,t,s,r,c){for(var h=l.create({label:"Newtons Cradle"}),v=0;v<s;v++){var y=1.9,M=n.circle(a+v*(r*y),t+c,r,{inertia:1/0,restitution:1,friction:0,frictionAir:1e-4,slop:1}),g=o.create({pointA:{x:a+v*(r*y),y:t},bodyB:M});l.addBody(h,M),l.addConstraint(h,g)}return h},f(e,"newtonsCradle","Composites.newtonsCradle ➤ moved to newtonsCradle example"),e.car=function(a,t,s,r,c){var h=d.nextGroup(!0),v=20,y=-s*.5+v,M=s*.5-v,g=0,m=l.create({label:"Car"}),w=n.rectangle(a,t,s,r,{collisionFilter:{group:h},chamfer:{radius:r*.5},density:2e-4}),p=n.circle(a+y,t+g,c,{collisionFilter:{group:h},friction:.8}),b=n.circle(a+M,t+g,c,{collisionFilter:{group:h},friction:.8}),P=o.create({bodyB:w,pointB:{x:y,y:g},bodyA:p,stiffness:1,length:0}),S=o.create({bodyB:w,pointB:{x:M,y:g},bodyA:b,stiffness:1,length:0});return l.addBody(m,w),l.addBody(m,p),l.addBody(m,b),l.addConstraint(m,P),l.addConstraint(m,S),m},f(e,"car","Composites.car ➤ moved to car example"),e.softBody=function(a,t,s,r,c,h,v,y,M,g){M=i.extend({inertia:1/0},M),g=i.extend({stiffness:.2,render:{type:"line",anchors:!1}},g);var m=e.stack(a,t,s,r,c,h,function(w,p){return n.circle(w,p,y,M)});return e.mesh(m,s,r,v,g),m.label="Soft Body",m},f(e,"softBody","Composites.softBody ➤ moved to softBody and cloth examples")})()}),(function(T,E,u){var e={};T.exports=e;var l=u(9),o=u(0),i=o.deprecated;(function(){e.create=function(d){var n={buckets:{},pairs:{},pairsList:[],bucketWidth:48,bucketHeight:48};return o.extend(n,d)},e.update=function(d,n,f,a){var t,s,r,c=f.world,h=d.buckets,v,y,M=!1;for(t=0;t<n.length;t++){var g=n[t];if(!(g.isSleeping&&!a)&&!(c.bounds&&(g.bounds.max.x<c.bounds.min.x||g.bounds.min.x>c.bounds.max.x||g.bounds.max.y<c.bounds.min.y||g.bounds.min.y>c.bounds.max.y))){var m=e._getRegion(d,g);
27if(!g.region||m.id!==g.region.id||a){(!g.region||a)&&(g.region=m);var w=e._regionUnion(m,g.region);for(s=w.startCol;s<=w.endCol;s++)for(r=w.startRow;r<=w.endRow;r++){y=e._getBucketId(s,r),v=h[y];var p=s>=m.startCol&&s<=m.endCol&&r>=m.startRow&&r<=m.endRow,b=s>=g.region.startCol&&s<=g.region.endCol&&r>=g.region.startRow&&r<=g.region.endRow;!p&&b&&b&&v&&e._bucketRemoveBody(d,v,g),(g.region===m||p&&!b||a)&&(v||(v=e._createBucket(h,y)),e._bucketAddBody(d,v,g))}g.region=m,M=!0}}}M&&(d.pairsList=e._createActivePairsList(d))},i(e,"update","Grid.update ➤ replaced by Matter.Detector"),e.clear=function(d){d.buckets={},d.pairs={},d.pairsList=[]},i(e,"clear","Grid.clear ➤ replaced by Matter.Detector"),e._regionUnion=function(d,n){var f=Math.min(d.startCol,n.startCol),a=Math.max(d.endCol,n.endCol),t=Math.min(d.startRow,n.startRow),s=Math.max(d.endRow,n.endRow);return e._createRegion(f,a,t,s)},e._getRegion=function(d,n){var f=n.bounds,a=Math.floor(f.min.x/d.bucketWidth),t=Math.floor(f.max.x/d.bucketWidth),s=Math.floor(f.min.y/d.bucketHeight),r=Math.floor(f.max.y/d.bucketHeight);return e._createRegion(a,t,s,r)},e._createRegion=function(d,n,f,a){return{id:d+","+n+","+f+","+a,startCol:d,endCol:n,startRow:f,endRow:a}},e._getBucketId=function(d,n){return"C"+d+"R"+n},e._createBucket=function(d,n){var f=d[n]=[];return f},e._bucketAddBody=function(d,n,f){var a=d.pairs,t=l.id,s=n.length,r;for(r=0;r<s;r++){var c=n[r];if(!(f.id===c.id||f.isStatic&&c.isStatic)){var h=t(f,c),v=a[h];v?v[2]+=1:a[h]=[f,c,1]}}n.push(f)},e._bucketRemoveBody=function(d,n,f){var a=d.pairs,t=l.id,s;n.splice(o.indexOf(n,f),1);var r=n.length;for(s=0;s<r;s++){var c=a[t(f,n[s])];c&&(c[2]-=1)}},e._createActivePairsList=function(d){var n,f=d.pairs,a=o.keys(f),t=a.length,s=[],r;for(r=0;r<t;r++)n=f[a[r]],n[2]>0?s.push(n):delete f[a[r]];return s}})()}),(function(T,E,u){var e={};T.exports=e;var l=u(3),o=u(7),i=u(14),d=u(5),n=u(13),f=u(10),a=u(6),t=u(0),s=u(1);(function(){e.create=function(r,c){var h=(r?r.mouse:null)||(c?c.mouse:null);h||(r&&r.render&&r.render.canvas?h=i.create(r.render.canvas):c&&c.element?h=i.create(c.element):(h=i.create(),t.warn("MouseConstraint.create: options.mouse was undefined, options.element was undefined, may not function as expected")));var v=f.create({label:"Mouse Constraint",pointA:h.position,pointB:{x:0,y:0},length:.01,stiffness:.1,angularStiffness:1,render:{strokeStyle:"#90EE90",lineWidth:3}}),y={type:"mouseConstraint",mouse:h,element:null,body:null,constraint:v,collisionFilter:{category:1,mask:4294967295,group:0}},M=t.extend(y,c);return d.on(r,"beforeUpdate",function(){var g=a.allBodies(r.world);e.update(M,g),e._triggerEvents(M)}),M},e.update=function(r,c){var h=r.mouse,v=r.constraint,y=r.body;if(h.button===0){if(v.bodyB)o.set(v.bodyB,!1),v.pointA=h.position;else for(var M=0;M<c.length;M++)if(y=c[M],s.contains(y.bounds,h.position)&&n.canCollide(y.collisionFilter,r.collisionFilter))for(var g=y.parts.length>1?1:0;g<y.parts.length;g++){var m=y.parts[g];if(l.contains(m.vertices,h.position)){v.pointA=h.position,v.bodyB=r.body=y,v.pointB={x:h.position.x-y.position.x,y:h.position.y-y.position.y},v.angleB=y.angle,o.set(y,!1),d.trigger(r,"startdrag",{mouse:h,body:y});break}}}else v.bodyB=r.body=null,v.pointB=null,y&&d.trigger(r,"enddrag",{mouse:h,body:y})},e._triggerEvents=function(r){var c=r.mouse,h=c.sourceEvents;h.mousemove&&d.trigger(r,"mousemove",{mouse:c}),h.mousedown&&d.trigger(r,"mousedown",{mouse:c}),h.mouseup&&d.trigger(r,"mouseup",{mouse:c}),i.clearSourceEvents(c)}})()}),(function(T,E,u){var e={};T.exports=e;var l=u(2),o=u(8),i=u(1),d=u(12),n=u(3);(function(){e.collides=function(f,a){for(var t=[],s=a.length,r=f.bounds,c=o.collides,h=i.overlaps,v=0;v<s;v++){var y=a[v],M=y.parts.length,g=M===1?0:1;if(h(y.bounds,r))for(var m=g;m<M;m++){var w=y.parts[m];if(h(w.bounds,r)){var p=c(w,f);if(p){t.push(p);break}}}}return t},e.ray=function(f,a,t,s){s=s||1e-100;for(var r=l.angle(a,t),c=l.magnitude(l.sub(a,t)),h=(t.x+a.x)*.5,v=(t.y+a.y)*.5,y=d.rectangle(h,v,c,s,{angle:r}),M=e.collides(y,f),g=0;g<M.length;g+=1){var m=M[g];m.body=m.bodyB=m.bodyA}return M}
vendor: 4,223 bytes, line 27
27,e.region=function(f,a,t){for(var s=[],r=0;r<f.length;r++){var c=f[r],h=i.overlaps(c.bounds,a);(h&&!t||!h&&t)&&s.push(c)}return s},e.point=function(f,a){for(var t=[],s=0;s<f.length;s++){var r=f[s];if(i.contains(r.bounds,a))for(var c=r.parts.length===1?0:1;c<r.parts.length;c++){var h=r.parts[c];if(i.contains(h.bounds,a)&&n.contains(h.vertices,a)){t.push(r);break}}}return t}})()}),(function(T,E,u){var e={};T.exports=e;var l=u(4),o=u(0),i=u(6),d=u(1),n=u(5),f=u(2),a=u(14);(function(){var t,s;typeof window<"u"&&(t=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.msRequestAnimationFrame||function(g){window.setTimeout(function(){g(o.now())},1e3/60)},s=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame||window.msCancelAnimationFrame),e._goodFps=30,e._goodDelta=1e3/60,e.create=function(g){var m={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:[],engineUpdatesHistory:[],elapsedHistory:[]},options:{width:800,height:600,pixelRatio:1,background:"#14151f",wireframeBackground:"#14151f",wireframeStrokeStyle:"#bbb",hasBounds:!!g.bounds,enabled:!0,wireframes:!0,showSleeping:!0,showDebug:!1,showStats:!1,showPerformance:!1,showBounds:!1,showVelocity:!1,showCollisions:!1,showSeparations:!1,showAxes:!1,showPositions:!1,showAngleIndicator:!1,showIds:!1,showVertexNumbers:!1,showConvexHulls:!1,showInternalEdges:!1,showMousePosition:!1}},w=o.extend(m,g);return w.canvas&&(w.canvas.width=w.options.width||w.canvas.width,w.canvas.height=w.options.height||w.canvas.height),w.mouse=g.mouse,w.engine=g.engine,w.canvas=w.canvas||h(w.options.width,w.options.height),w.context=w.canvas.getContext("2d"),w.textures={},w.bounds=w.bounds||{min:{x:0,y:0},max:{x:w.canvas.width,y:w.canvas.height}},w.controller=e,w.options.showBroadphase=!1,w.options.pixelRatio!==1&&e.setPixelRatio(w,w.options.pixelRatio),o.isElement(w.element)&&w.element.appendChild(w.canvas),w},e.run=function(g){(function m(w){g.frameRequestId=t(m),r(g,w),e.world(g,w),g.context.setTransform(g.options.pixelRatio,0,0,g.options.pixelRatio,0,0),(g.options.showStats||g.options.showDebug)&&e.stats(g,g.context,w),(g.options.showPerformance||g.options.showDebug)&&e.performance(g,g.context,w),g.context.setTransform(1,0,0,1,0,0)})()},e.stop=function(g){s(g.frameRequestId)},e.setPixelRatio=function(g,m){var w=g.options,p=g.canvas;m==="auto"&&(m=v(p)),w.pixelRatio=m,p.setAttribute("data-pixel-ratio",m),p.width=w.width*m,p.height=w.height*m,p.style.width=w.width+"px",p.style.height=w.height+"px"},e.setSize=function(g,m,w){g.options.width=m,g.options.height=w,g.bounds.max.x=g.bounds.min.x+m,g.bounds.max.y=g.bounds.min.y+w,g.options.pixelRatio!==1?e.setPixelRatio(g,g.options.pixelRatio):(g.canvas.width=m,g.canvas.height=w)},e.lookAt=function(g,m,w,p){p=typeof p<"u"?p:!0,m=o.isArray(m)?m:[m],w=w||{x:0,y:0};for(var b={min:{x:1/0,y:1/0},max:{x:-1/0,y:-1/0}},P=0;P<m.length;P+=1){var S=m[P],x=S.bounds?S.bounds.min:S.min||S.position||S,B=S.bounds?S.bounds.max:S.max||S.position||S;x&&B&&(x.x<b.min.x&&(b.min.x=x.x),B.x>b.max.x&&(b.max.x=B.x),x.y<b.min.y&&(b.min.y=x.y),B.y>b.max.y&&(b.max.y=B.y))}var I=b.max.x-b.min.x+2*w.x,F=b.max.y-b.min.y+2*w.y,N=g.canvas.height,k=g.canvas.width,H=k/N,V=I/F,j=1,U=1;V>H?U=V/H:j=H/V,g.options.hasBounds=!0,g.bounds.min.x=b.min.x,g.bounds.max.x=b.min.x+I*j,g.bounds.min.y=b.min.y,g.bounds.max.y=b.min.y+F*U,p&&(g.bounds.min.x+=I*.5-I*j*.5,g.bounds.max.x+=I*.5-I*j*.5,g.bounds.min.y+=F*.5-F*U*.5,g.bounds.max.y+=F*.5-F*U*.5),g.bounds.min.x-=w.x,g.bounds.max.x-=w.x,g.bounds.min.y-=w.y,g.bounds.max.y-=w.y,g.mouse&&(a.setScale(g.mouse,{x:(g.bounds.max.x-g.bounds.min.x)/g.canvas.width,y:(g.bounds.max.y-g.bounds.min.y)/g.canvas.height}),a.setOffset(g.mouse,g.bounds.min))},e.startViewTransform=function(g){var m=g.bounds.max.x-g.bounds.min.x,w=g.bounds.max.y-g.bounds.min.y,p=m/g.options.width,b=w/g.options.height;g.context.setTransform(g.options.pixelRatio/p,0,0,g.options.pixelRatio/b,0,0),g.context.translate(-g.bounds.min.x,-g.boun
27ds.min.y)},e.endViewTransform=function(g){g.context.setTransform(g.options.pixelRatio,0,0,g.options.pixelRatio,0,0)},e.world=function(g,m){var w=o.now(),p=g.engine,b=p.world,P=g.canvas,S=g.context,x=g.options,B=g.timing,I=i.allBodies(b),F=i.allConstraints(b),N=x.wireframes?x.wireframeBackground:x.background,k=[],H=[],V,j={timestamp:p.timing.timestamp};if(n.trigger(g,"beforeRender",j),g.currentBackground!==N&&M(g,N),S.globalCompositeOperation="source-in",S.fillStyle="transparent",S.fillRect(0,0,P.width,P.height),S.globalCompositeOperation="source-over",x.hasBounds){for(V=0;V<I.length;V++){var U=I[V];d.overlaps(U.bounds,g.bounds)&&k.push(U)}for(V=0;V<F.length;V++){var G=F[V],$=G.bodyA,oe=G.bodyB,_=G.pointA,z=G.pointB;$&&(_=f.add($.position,G.pointA)),oe&&(z=f.add(oe.position,G.pointB)),!(!_||!z)&&(d.contains(g.bounds,_)||d.contains(g.bounds,z))&&H.push(G)}e.startViewTransform(g),g.mouse&&(a.setScale(g.mouse,{x:(g.bounds.max.x-g.bounds.min.x)/g.options.width,y:(g.bounds.max.y-g.bounds.min.y)/g.options.height}),a.setOffset(g.mouse,g.bounds.min))}else H=F,k=I,g.options.pixelRatio!==1&&g.context.setTransform(g.options.pixelRatio,0,0,g.options.pixelRatio,0,0);!x.wireframes||p.enableSleeping&&x.showSleeping?e.bodies(g,k,S):(x.showConvexHulls&&e.bodyConvexHulls(g,k,S),e.bodyWireframes(g,k,S)),x.showBounds&&e.bodyBounds(g,k,S),(x.showAxes||x.showAngleIndicator)&&e.bodyAxes(g,k,S),x.showPositions&&e.bodyPositions(g,k,S),x.showVelocity&&e.bodyVelocity(g,k,S),x.showIds&&e.bodyIds(g,k,S),x.showSeparations&&e.separations(g,p.pairs.list,S),x.showCollisions&&e.collisions(g,p.pairs.list,S),x.showVertexNumbers&&e.vertexNumbers(g,k,S),x.showMousePosition&&e.mousePosition(g,g.mouse,S),e.constraints(H,S),x.hasBounds&&e.endViewTransform(g),n.trigger(g,"afterRender",j),B.lastElapsed=o.now()-w},e.stats=function(g,m,w){for(var p=g.engine,b=p.world,P=i.allBodies(b),S=0,x=55,B=44,I=0,F=0,N=0;N<P.length;N+=1)S+=P[N].parts.length;var k={Part:S,Body:P.length,Cons:i.allConstraints(b).length,Comp:i.allComposites(b).length,Pair:p.pairs.list.length};m.fillStyle="#0e0f19",m.fillRect(I,F,x*5.5,B),m.font="12px Arial",m.textBaseline="top",m.textAlign="right";for(var H in k){var V=k[H];m.fillStyle="#aaa",m.fillText(H,I+x,F+8),m.fillStyle="#eee",m.fillText(V,I+x,F+26),I+=x}},e.performance=function(g,m){var w=g.engine,p=g.timing,b=p.deltaHistory,P=p.elapsedHistory,S=p.timestampElapsedHistory,x=p.engineDeltaHistory,B=p.engineUpdatesHistory,I=p.engineElapsedHistory,F=w.timing.lastUpdatesPerFrame,N=w.timing.lastDelta,k=c(b),H=c(P),V=c(x),j=c(B),U=c(I),G=c(S),$=G/k||0,oe=Math.round(k/N),_=1e3/k||0,z=4,ee=12,K=60,le=34,te=10,ne=69;m.fillStyle="#0e0f19",m.fillRect(0,50,ee*5+K*6+22,le),e.status(m,te,ne,K,z,b.length,Math.round(_)+" fps",_/e._goodFps,function(Q){return b[Q]/k-1}),e.status(m,te+ee+K,ne,K,z,x.length,N.toFixed(2)+" dt",e._goodDelta/N,function(Q){return x[Q]/V-1}),e.status(m,te+(ee+K)*2,ne,K,z,B.length,F+" upf",Math.pow(o.clamp(j/oe||1,0,1),4),function(Q){return B[Q]/j-1}),e.status(m,te+(ee+K)*3,ne,K,z,I.length,U.toFixed(2)+" ut",1-F*U/e._goodFps,function(Q){return I[Q]/U-1}),e.status(m,te+(ee+K)*4,ne,K,z,P.length,H.toFixed(2)+" rt",1-H/e._goodFps,function(Q){return P[Q]/H-1}),e.status(m,te+(ee+K)*5,ne,K,z,S.length,$.toFixed(2)+" x",$*$*$,function(Q){return(S[Q]/b[Q]/$||0)-1})},e.status=function(g,m,w,p,b,P,S,x,B){g.strokeStyle="#888",g.fillStyle="#444",g.lineWidth=1,g.fillRect(m,w+7,p,1),g.beginPath(),g.moveTo(m,w+7-b*o.clamp(.4*B(0),-2,2));for(var I=0;I<p;I+=1)g.lineTo(m+I,w+7-(I<P?b*o.clamp(.4*B(I),-2,2):0));g.stroke(),g.fillStyle="hsl("+o.clamp(25+95*x,0,120)+",100%,60%)",g.fillRect(m,w-7,4,4),g.font="12px Arial",g.textBaseline="middle",g.textAlign="right",g.fillStyle="#eee",g.fillText(S,m+p,w-5)},e.constraints=function(g,m){for(var w=m,p=0;p<g.length;p++){var b=g[p];if(!(!b.render.visible||!b.pointA||!b.pointB)){var P=b.bodyA,S=b.bodyB,x,B;if(P?x=f.add(P.position,b.pointA):x=b.pointA,b.render.type==="pin")w.beginPath(),w.arc(x.x,x.y,3,0,2*Math.PI),w.closePath();else{if(S?B=f.add(S.position,b.pointB):B=b.pointB,w.beginPath(),w.moveTo(x.x,x.y),b.render.type==="spring")for(var I=f.sub(B,x),F=f.perp(f.normalise(I)),N=Math.ceil(o.clamp(b.length/5,12,20)),k,H=1;H<N;H+=1)k=H%2===0?1:-1,w.lineTo(x.x+I.x*(H/N)+F.x*k*4,x.y+I.y*(H/N)+F.y*k*4);w.lineTo(B.x,B.y)}b.render.lineWidth&&(w.lineWidth=b.render.lineWidth,w.strokeStyle=b.render.strokeStyle,w.stroke()),b.render.anchors&&(w.fillStyle=b.render.strokeStyle,w.beginPath(),w.arc(x.x,x.y,3,0,2*Math.PI),w.arc(B.x,B.y,3,0,2*Math.PI),w.closePath(),w.fill())}}},e.bodies=function(g,m,w){var p=w;g.engine;var b=g.options,P=b.showInternalEdges||!b.wireframes,S,x,B,I;for(B=0;B<m.length;B++)if(S=m[B],!!S.render.visible){for(I=S.parts.length>1?1:0;I<S.parts.length;I++)if(x=S.parts[I],!!x.render.visible){if(b.showSleeping&&S.isSleeping?p.globalAlpha=.5*x.render.opacity:x.render.opacity!==1&&(p.globalAlpha=x.render.opacity),x.render.sprite&&x.render.sprite.texture&&!b.wireframes){var F=x.render.sprite,N=y(g,F.texture);p.translate(x.position.x,x.position.y),p.rotate(x.angle),p.drawImage(N,N.width*-F.xOffset*F.xScale,N.height*-F.yOffset*F.yScale,N.width*F.xScale,N.height*F.yScale),p.rotate(-x.angle),p.translate(-x.position.x,-x.position.y)}else{if(x.circleRadius)p.beginPath(),p.arc(x.position.x,x.position.y,x.circleRadius,0,2*Math.PI);else{p.beginPath(),p.moveTo(x.vertices[0].x,x.vertices[0].y);for(var k=1;k<x.vertices.length;k++)!x.vertices[k-1].isInternal||P?p.lineTo(x.vertices[k].x,x.vertices[k].y):p.moveTo(x.vertices[k].x,x.vertices[k].y),x.vertices[k].isInternal&&!P&&p.moveTo(x.vertices[(k+1)%x.vertices.length].x,x.vertices[(k+1)%x.vertices.length].y);p.lineTo(x.vertices[0].x,x.vertices[0].y),p.closePath()}b.wireframes?(p.lineWidth=1,p.strokeStyle=g.options.wireframeStrokeStyle,p.stroke()):(p.fillStyle=x.render.fillStyle,x.render.lineWidth&&(p.lineWidth=x.render.lineWidth,p.strokeStyle=x.render.strokeStyle,p.stroke()),p.fill())}p.globalAlpha=1}}},e.bodyWireframes=function(g,m,w){var p=w,b=g.options.showInternalEdges,P,S,x,B,I;for(p.beginPath(),x=0;x<m.length;x++)if(P=m[x],!!P.render.visible)for(I=P.parts.length>1?1:0;I<P.parts.length;I++){for(S=P.parts[I],p.moveTo(S.vertices[0].x,S.vertices[0].y),B=1;B<S.vertices.length;B++)!S.vertices[B-1].isInternal||b?p.lineTo(S.vertices[B].x,S.vertices[B].y):p.moveTo(S.vertices[B].x,S.vertices[B].y),S.vertices[B].isInternal&&!b&&p.moveTo(S.vertices[(B+1)%S.vertices.length].x,S.vertices[(B+1)%S.vertices.length].y);p.lineTo(S.vertices[0].x,S.vertices[0].y)}p.lineWidth=1,p.strokeStyle=g.options.wireframeStrokeStyle,p.stroke()},e.bodyConvexHulls=function(g,m,w){var p=w,b,P,S;for(p.beginPath(),P=0;P<m.length;P++)if(b=m[P],!(!b.render.visible||b.parts.length===1)){for(p.moveTo(b.vertices[0].x,b.vertices[0].y),S=1;S<b.vertices.length;S++)p.lineTo(b.vertices[S].x,b.vertices[S].y);p.lineTo(b.vertices[0].x,b.vertices[0].y)}p.lineWidth=1,p.strokeStyle="rgba(255,255,255,0.2)",p.stroke()},e.vertexNumbers=function(g,m,w){var p=w,b,P,S;for(b=0;b<m.length;b++){var x=m[b].parts;for(S=x.length>1?1:0;S<x.length;S++){var B=x[S];for(P=0;P<B.vertices.length;P++)p.fillStyle="rgba(255,255,255,0.2)",p.fillText(b+"_"+P,B.position.x+(B.vertices[P].x-B.position.x)*.8,B.position.y+(B.vertices[P].y-B.position.y)*.8)}}},e.mousePosition=function(g,m,w){var p=w;p.fillStyle="rgba(255,255,255,0.8)",p.fillText(m.position.x+"  "+m.position.y,m.position.x+5,m.position.y-5)},e.bodyBounds=function(g,m,w){var p=w;g.engine;var b=g.options;p.beginPath();for(var P=0;P<m.length;P++){var S=m[P];if(S.render.visible)for(var x=m[P].parts,B=x.length>1?1:0;B<x.length;B++){var I=x[B];p.rect(I.bounds.min.x,I.bounds.min.y,I.bounds.max.x-I.bounds.min.x,I.bounds.max.y-I.bounds.min.y)}}b.wireframes?p.strokeStyle="rgba(255,255,255,0.08)":p.strokeStyle="rgba(0,0,0,0.1)",p.lineWidth=1,p.stroke()},e.bodyAxes=function(g,m,w){var p=w;g.engine;var b=g.options,P,S,x,B;for(p.beginPath(),S=0;S<m.length;S++){var I=m[S],F=I.parts;if(I.render.visible)if(b.showAxes)for(x=F.length>1?1:0;x<F.length;x++)for(P=F[x],B=0;B<P.axes.length;B++){var N=P.axes[B];p.moveTo(P.position.x,P.position.y),p.lineTo(P.position.x+N.x*20,P.position.y+N.y*20)}else for(x=F.length>1?1:0;x<F.length;x++)for(P=F[x],B=0;B<P.axes.length;B++)p.moveTo(P.position.x,P.position.y),p.lineTo((P.vertices[0].x+P.vertices[P.vertices.length-1].x)/2,(P.vertices[0].y+P.vertices[P.vertices.length-1].y)/2)}b.wireframes?(p.strokeStyle="indianred",p.lineWidth=1):(p.strokeStyle="rgba(255, 255, 255, 0.4)",p.globalCompositeOperation="overlay",p.lineWidth=2),p.stroke(),p.globalCompositeOperation="source-over"},e.bodyPositions=function(g,m,w){var p=w;g.engine;var b=g.options,P,S,x,B;for(p.beginPath(),x=0;x<m.length;x++)if(P=m[x],!!P.render.visible)for(B=0;B<P.parts.length;B++)S=P.parts[B],p.arc(S.position.x,S.position.y,3,0,2*Math.PI,!1),p.closePath();for(b.wireframes?p.fillStyle="indianred":p.fillStyle="rgba(0,0,0,0.5)",p.fill(),p.beginPath(),x=0;x<m.length;x++)P=m[x],P.render.visible&&(p.arc(P.positionPrev.x,P.positionPrev.y,2,0,2*Math.PI,!1),p.closePath());p.fillStyle="rgba(255,165,0,0.8)",p.fill()},e.bodyVelocity=function(g,m,w){var p=w;p.beginPath();for(var b=0;b<m.length;b++){var P=m[b];if(P.render.visible){var S=l.getVelocity(P);p.moveTo(P.position.x,P.position.y),p.lineTo(P.position.x+S.x,P.position.y+S.y)}}p.lineWidth=3,p.strokeStyle="cornflowerblue",p.stroke()},e.bodyIds=function(g,m,w){var p=w,b,P;for(b=0;b<m.length;b++)if(m[b].render.visible){var S=m[b].parts;for(P=S.length>1?1:0;P<S.length;P++){var x=S[P];p.font="12px Arial",p.fillStyle="rgba(255,255,255,0.5)",p.fillText(x.id,x.position.x+10,x.position.y-10)}}},e.collisions=function(g,m,w){var p=w,b=g.options,P,S,x,B;for(p.beginPath(),x=0;x<m.length;x++)if(P=m[x],!!P.isActive)for(S=P.collision,B=0;B<P.contactCount;B++){var I=P.contacts[B],F=I.vertex;p.rect(F.x-1.5,F.y-1.5,3.5,3.5)}for(b.wireframes?p.fillStyle="rgba(255,255,255,0.7)":p.fillStyle="orange",p.fill(),p.beginPath(),x=0;x<m.length;x++)if(P=m[x],!!P.isActive&&(S=P.collision,P.contactCount>0)){var N=P.contacts[0].vertex.x,k=P.contacts[0].vertex.y;P.contactCount===2&&(N=(P.contacts[0].vertex.x+P.contacts[1].vertex.x)/2,k=(P.contacts[0].vertex.y+P.contacts[1].vertex.y)/2),S.bodyB===S.supports[0].body||S.bodyA.isStatic===!0?p.moveTo(N-S.normal.x*8,k-S.normal.y*8):p.moveTo(N+S.normal.x*8,k+S.normal.y*8),p.lineTo(N,k)}b.wireframes?p.strokeStyle="rgba(255,165,0,0.7)":p.strokeStyle="orange",p.lineWidth=1,p.stroke()},e.separations=function(g,m,w){var p=w,b=g.options,P,S,x,B,I;for(p.beginPath(),I=0;I<m.length;I++)if(P=m[I],!!P.isActive){S=P.collision,x=S.bodyA,B=S.bodyB;var F=1;!B.isStatic&&!x.isStatic&&(F=.5),B.isStatic&&(F=0),p.moveTo(B.position.x,B.position.y),p.lineTo(B.position.x-S.penetration.x*F,B.position.y-S.penetration.y*F),F=1,!B.isStatic&&!x.isStatic&&(F=.5),x.isStatic&&(F=0),p.moveTo(x.position.x,x.position.y),p.lineTo(x.position.x+S.penetration.x*F,x.position.y+S.penetration.y*F)}b.wireframes?p.strokeStyle="rgba(255,165,0,0.5)":p.strokeStyle="orange",p.stroke()},e.inspector=function(g,m){g.engine;var w=g.selected,p=g.render,b=p.options,P;if(b.hasBounds){var S=p.bounds.max.x-p.bounds.min.x,x=p.bounds.max.y-p.bounds.min.y,B=S/p.options.width,I=x/p.options.height;m.scale(1/B,1/I),m.translate(-p.bounds.min.x,-p.bounds.min.y)}for(var F=0;F<w.length;F++){var N=w[F].data;switch(m.translate(.5,.5),m.lineWidth=1,m.strokeStyle="rgba(255,165,0,0.9)",m.setLineDash([1,2]),N.type){case"body":P=N.bounds,m.beginPath(),m.rect(Math.floor(P.min.x-3),Math.floor(P.min.y-3),Math.floor(P.max.x-P.min.x+6),Math.floor(P.max.y-P.min.y+6)),m.closePath(),m.stroke();break;case"constraint":var k=N.pointA;N.bodyA&&(k=N.pointB),m.beginPath(),m.arc(k.x,k.y,10,0,2*Math.PI),m.closePath(),m.stroke();break}m.setLineDash([]),m.translate(-.5,-.5)}g.selectStart!==null&&(m.translate(.5,.5),m.lineWidth=1,m.strokeStyle="rgba(255,165,0,0.6)",m.fillStyle="rgba(255,165,0,0.1)",P=g.selectBounds,m.beginPath(),m.rect(Math.floor(P.min.x),Math.floor(P.min.y),Math.floor(P.max.x-P.min.x),Math.floor(P.max.y-P.min.y)),m.closePath(),m.stroke(),m.fill(),m.translate(-.5,-.5)),b.hasBounds&&m.setTransform(1,0,0,1,0,0)};var r=function(g,m){var w=g.engine,p=g.timing,b=p.historySize,P=w.timing.timestamp;p.delta=m-p.lastTime||e._goodDelta,p.lastTime=m,p.timestampElapsed=P-p.lastTimestamp||0,p.lastTimestamp=P,p.deltaHistory.unshift(p.delta),p.deltaHistory.length=Math.min(p.deltaHistory.length,b),p.engineDeltaHistory.unshift(w.timing.lastDelta),p.engineDeltaHistory.length=Math.min(p.engineDeltaHistory.length,b),p.timestampElapsedHistory.unshift(p.timestampElapsed),p.timestampElapsedHistory.length=Math.min(p.timestampElapsedHistory.length,b),p.engineUpdatesHistory.unshift(w.timing.lastUpdatesPerFrame),p.engineUpdatesHistory.length=Math.min(p.engineUpdatesHistory.length,b),p.engineElapsedHistory.unshift(w.timing.lastElapsed),p.engineElapsedHistory.length=Math.min(p.engineElapsedHistory.length,b),p.elapsedHistory.unshift(p.lastElapsed),p.elapsedHistory.length=Math.min(p.elapsedHistory.length,b)},c=function(g){for(var m=0,w=0;w<g.length;w+=1)m+=g[w];return m/g.length||0},h=function(g,m){var w=document.createElement("canvas");return w.width=g,w.height=m,w.oncontextmenu=function(){return!1},w.onselectstart=function(){return!1},w},v=function(g){var m=g.getContext("2d"),w=window.devicePixelRatio||1,p=m.webkitBackingStorePixelRatio||m.mozBackingStorePixelRatio||m.msBackingStorePixelRatio||m.oBackingStorePixelRatio||m.backingStorePixelRatio||1;return w/p},y=function(g,m){var w=g.textures[m];return w||(w=g.textures[m]=new Image,w.src=m,w)},M=function(g,m){var w=m;/(jpg|gif|png)$/.test(m)&&(w="url("+m+")"),g.canvas.style.background=w,g.canvas.style.backgroundSize="contain",g.currentBackgroun
27d=m}})()}),(function(T,E,u){var e={};T.exports=e;var l=u(5),o=u(17),i=u(0);(function(){e._maxFrameDelta=1e3/15,e._frameDeltaFallback=1e3/60,e._timeBufferMargin=1.5,e._elapsedNextEstimate=1,e._smoothingLowerBound=.1,e._smoothingUpperBound=.9,e.create=function(n){var f={delta:16.666666666666668,frameDelta:null,frameDeltaSmoothing:!0,frameDeltaSnapping:!0,frameDeltaHistory:[],frameDeltaHistorySize:100,frameRequestId:null,timeBuffer:0,timeLastTick:null,maxUpdates:null,maxFrameTime:33.333333333333336,lastUpdatesDeferred:0,enabled:!0},a=i.extend(f,n);return a.fps=0,a},e.run=function(n,f){return n.timeBuffer=e._frameDeltaFallback,(function a(t){n.frameRequestId=e._onNextFrame(n,a),t&&n.enabled&&e.tick(n,f,t)})(),n},e.tick=function(n,f,a){var t=i.now(),s=n.delta,r=0,c=a-n.timeLastTick;if((!c||!n.timeLastTick||c>Math.max(e._maxFrameDelta,n.maxFrameTime))&&(c=n.frameDelta||e._frameDeltaFallback),n.frameDeltaSmoothing){n.frameDeltaHistory.push(c),n.frameDeltaHistory=n.frameDeltaHistory.slice(-n.frameDeltaHistorySize);var h=n.frameDeltaHistory.slice(0).sort(),v=n.frameDeltaHistory.slice(h.length*e._smoothingLowerBound,h.length*e._smoothingUpperBound),y=d(v);c=y||c}n.frameDeltaSnapping&&(c=1e3/Math.round(1e3/c)),n.frameDelta=c,n.timeLastTick=a,n.timeBuffer+=n.frameDelta,n.timeBuffer=i.clamp(n.timeBuffer,0,n.frameDelta+s*e._timeBufferMargin),n.lastUpdatesDeferred=0;var M=n.maxUpdates||Math.ceil(n.maxFrameTime/s),g={timestamp:f.timing.timestamp};l.trigger(n,"beforeTick",g),l.trigger(n,"tick",g);for(var m=i.now();s>0&&n.timeBuffer>=s*e._timeBufferMargin;){l.trigger(n,"beforeUpdate",g),o.update(f,s),l.trigger(n,"afterUpdate",g),n.timeBuffer-=s,r+=1;var w=i.now()-t,p=i.now()-m,b=w+e._elapsedNextEstimate*p/r;if(r>=M||b>n.maxFrameTime){n.lastUpdatesDeferred=Math.round(Math.max(0,n.timeBuffer/s-e._timeBufferMargin));break}}f.timing.lastUpdatesPerFrame=r,l.trigger(n,"afterTick",g),n.frameDeltaHistory.length>=100&&(n.lastUpdatesDeferred&&Math.round(n.frameDelta/s)>M?i.warnOnce("Matter.Runner: runner reached runner.maxUpdates, see docs."):n.lastUpdatesDeferred&&i.warnOnce("Matter.Runner: runner reached runner.maxFrameTime, see docs."),typeof n.isFixed<"u"&&i.warnOnce("Matter.Runner: runner.isFixed is now redundant, see docs."),(n.deltaMin||n.deltaMax)&&i.warnOnce("Matter.Runner: runner.deltaMin and runner.deltaMax were removed, see docs."),n.fps!==0&&i.warnOnce("Matter.Runner: runner.fps was replaced by runner.delta, see docs."))},e.stop=function(n){e._cancelNextFrame(n)},e._onNextFrame=function(n,f){if(typeof window<"u"&&window.requestAnimationFrame)n.frameRequestId=window.requestAnimationFrame(f);else throw new Error("Matter.Runner: missing required global window.requestAnimationFrame.");return n.frameRequestId},e._cancelNextFrame=function(n){if(typeof window<"u"&&window.cancelAnimationFrame)window.cancelAnimationFrame(n.frameRequestId);else throw new Error("Matter.Runner: missing required global window.cancelAnimationFrame.")};var d=function(n){for(var f=0,a=n.length,t=0;t<a;t+=1)f+=n[t];return f/a||0}})()}),(function(T,E,u){var e={};T.exports=e;var l=u(8),o=u(0),i=o.deprecated;(function(){e.collides=function(d,n){return l.collides(d,n)},i(e,"collides","SAT.collides ➤ replaced by Collision.collides")})()}),(function(T,E,u){var e={};T.exports=e,u(1);var l=u(0);(function(){e.pathToVertices=function(o,i){typeof window<"u"&&!("SVGPathSeg"in window)&&l.warn("Svg.pathToVertices: SVGPathSeg not defined, a polyfill is required.");var d,n,f,a,t,s,r,c,h,v,y=[],M,g,m=0,w=0,p=0;i=i||15;var b=function(S,x,B){var I=B%2===1&&B>1;if(!h||S!=h.x||x!=h.y){h&&I?(M=h.x,g=h.y):(M=0,g=0);var F={x:M+S,y:g+x};(I||!h)&&(h=F),y.push(F),w=M+S,p=g+x}},P=function(S){var x=S.pathSegTypeAsLetter.toUpperCase();if(x!=="Z"){switch(x){case"M":case"L":case"T":case"C":case"S":case"Q":w=S.x,p=S.y;break;case"H":w=S.x;break;case"V":p=S.y;break}b(w,p,S.pathSegType)}};for(e._svgPathToAbsolute(o),f=o.getTotalLength(),s=[],d=0;d<o.pathSegList.numberOfItems;d+=1)s.push(o.pathSegList.getItem(d));for(r=s.concat();m<f;){if(v=o.getPathSegAtLength(m),t=s[v],t!=c){for(;r.length&&r[0]!=t;)P(r.shift());c=t}switch(t.pathSegTypeAsLetter.toUpperCase()){case"C":case"T":case"S":case"Q":case"A":a=o.getPointAtLength(m),b(a.x,a.y,0);break}m+=i}for(d=0,n=r.length;d<n;++d)P(r[d]);return y},e._svgPathToAbsolute=function(o){for(var i,d,n,f,a,t,s=o.pathSegList,r=0,c=0,h=s.numberOfItems,v=0;v<h;++v){var y=s.getItem(v),M=y.pathSegTypeAsLetter;if(/[MLHVCSQTA]/.test(M))"x"in y&&(r=y.x),"y"in y&&(c=y.y);else switch("x1"in y&&(n=r+y.x1),"x2"in y&&(a=r+y.x2),"y1"in y&&(f=c+y.y1),"y2"in y&&(t=c+y.y2),"x"in y&&(r+=y.x),"y"in y&&(c+=y.y),M){case"m":s.replaceItem(o.createSVGPathSegMovetoAbs(r,c),v);break;case"l":s.replaceItem(o.createSVGPathSegLinetoAbs(r,c),v);break;case"h":s.replaceItem(o.createSVGPathSegLinetoHorizontalAbs(r),v);break;case"v":s.replaceItem(o.createSVGPathSegLinetoVerticalAbs(c),v);break;case"c":s.replaceItem(o.createSVGPathSegCurvetoCubicAbs(r,c,n,f,a,t),v);break;case"s":s.replaceItem(o.createSVGPathSegCurvetoCubicSmoothAbs(r,c,a,t),v);break;case"q":s.replaceItem(o.createSVGPathSegCurvetoQuadraticAbs(r,c,n,f),v);break;case"t":s.replaceItem(o.createSVGPathSegCurvetoQuadraticSmoothAbs(r,c),v);break;case"a":s.replaceItem(o.createSVGPathSegArcAbs(r,c,y.r1,y.r2,y.angle,y.largeArcFlag,y.sweepFlag),v);break;case"z":case"Z":r=i,c=d;break}(M=="M"||M=="m")&&(i=r,d=c)}}})()}),(function(T,E,u){var e={};T.exports=e;var l=u(6);u(0),(function(){e.create=l.create,e.add=l.add,e.remove=l.remove,e.clear=l.clear,e.addComposite=l.addComposite,e.addBody=l.addBody,e.addConstraint=l.addConstraint})()})])})})(Ne)),Ne.exports}var Gt=Xt();const O=ut(Gt);function $t(L){for(var D=[],T=1;T<arguments.length;T++)D[T-1]=arguments[T];L&&L.addEventListener&&L.addEventListener.apply(L,D)}function Kt(L){for(var D=[],T=1;T<arguments.length;T++)D[T-1]=arguments[T];L&&L.removeEventListener&&L.removeEventListener.apply(L,D)}var Ue=typeof window<"u",Qt=function(L){R.useEffect(L,[])},Zt=function(L){var D=R.useRef(L);D.current=L,Qt(function(){return function(){return D.current()}})},Jt=function(L){var D=R.useRef(0),T=R.useState(L),E=T[0],u=T[1],e=R.useCallback(function(l){cancelAnimationFrame(D.current),D.current=requestAnimationFrame(function(){u(l)})},[]);return Zt(function(){cancelAnimationFrame(D.current)}),[E,e]};function Pe(L,D){D===void 0&&(D=!0);var T=R.useRef(null),E=R.useRef(!1),u=R.useRef(L);u.current=L;var e=R.useCallback(function(o){E.current&&(u.current(o),T.current=requestAnimationFrame(e))},[]),l=R.useMemo(function(){return[function(){E.current&&(E.current=!1,T.current&&cancelAnimationFrame(T.current))},function(){E.current||(E.current=!0,T.current=requestAnimationFrame(e))},function(){return E.current}]},[]);return R.useEffect(function(){return D&&l[1](),l[0]},[]),l}var Ke=function(L){var D={},T=D.initialWidth,E=T===void 0?1/0:T,u=D.initialHeight,e=u===void 0?1/0:u,l=D.onChange,o=Jt({width:Ue?window.innerWidth:E,height:Ue?window.innerHeight:e}),i=o[0],d=o[1];return R.useEffect(function(){if(Ue){var n=function(){var f=window.innerWidth,a=window.innerHeight;d({width:f,height:a}),l&&l(f,a)};return $t(window,"resize",n),function(){Kt(window,"resize",n)}}},[]),i},He={exports:{}},qt=He.exports,it;function _t(){return it||(it=1,(function(L,D){(function(T,E){L.exports=E()})(qt,function(){var T=0;function E(r){return"__private_"+T+++"_"+r}function u(r,c){if(!Object.prototype.hasOwnProperty.call(r,c))throw new TypeError("attempted to use private field on non-instance");return r}function e(){}e.prototype={on:function(r,c,h){var v=this.e||(this.e={});return(v[r]||(v[r]=[])).push({fn:c,ctx:h}),this},once:function(r,c,h){var v=this;function y(){v.off(r,y),c.apply(h,arguments)}return y._=c,this.on(r,y,h)}
vendor: 4,107 bytes, line 27
27,emit:function(r){for(var c=[].slice.call(arguments,1),h=((this.e||(this.e={}))[r]||[]).slice(),v=0,y=h.length;v<y;v++)h[v].fn.apply(h[v].ctx,c);return this},off:function(r,c){var h=this.e||(this.e={}),v=h[r],y=[];if(v&&c)for(var M=0,g=v.length;M<g;M++)v[M].fn!==c&&v[M].fn._!==c&&y.push(v[M]);return y.length?h[r]=y:delete h[r],this}};var l=e;l.TinyEmitter=e;var o,i="virtualscroll",d=E("options"),n=E("el"),f=E("emitter"),a=E("event"),t=E("touchStart"),s=E("bodyTouchAction");return(function(){function r(h){var v=this;Object.defineProperty(this,d,{writable:!0,value:void 0}),Object.defineProperty(this,n,{writable:!0,value:void 0}),Object.defineProperty(this,f,{writable:!0,value:void 0}),Object.defineProperty(this,a,{writable:!0,value:void 0}),Object.defineProperty(this,t,{writable:!0,value:void 0}),Object.defineProperty(this,s,{writable:!0,value:void 0}),this._onWheel=function(y){var M=u(v,d)[d],g=u(v,a)[a];g.deltaX=y.wheelDeltaX||-1*y.deltaX,g.deltaY=y.wheelDeltaY||-1*y.deltaY,o.isFirefox&&y.deltaMode===1&&(g.deltaX*=M.firefoxMultiplier,g.deltaY*=M.firefoxMultiplier),g.deltaX*=M.mouseMultiplier,g.deltaY*=M.mouseMultiplier,v._notify(y)},this._onMouseWheel=function(y){var M=u(v,a)[a];M.deltaX=y.wheelDeltaX?y.wheelDeltaX:0,M.deltaY=y.wheelDeltaY?y.wheelDeltaY:y.wheelDelta,v._notify(y)},this._onTouchStart=function(y){var M=y.targetTouches?y.targetTouches[0]:y;u(v,t)[t].x=M.pageX,u(v,t)[t].y=M.pageY},this._onTouchMove=function(y){var M=u(v,d)[d];M.preventTouch&&!y.target.classList.contains(M.unpreventTouchClass)&&y.preventDefault();var g=u(v,a)[a],m=y.targetTouches?y.targetTouches[0]:y;g.deltaX=(m.pageX-u(v,t)[t].x)*M.touchMultiplier,g.deltaY=(m.pageY-u(v,t)[t].y)*M.touchMultiplier,u(v,t)[t].x=m.pageX,u(v,t)[t].y=m.pageY,v._notify(y)},this._onKeyDown=function(y){var M=u(v,a)[a];M.deltaX=M.deltaY=0;var g=window.innerHeight-40;switch(y.keyCode){case 37:case 38:M.deltaY=u(v,d)[d].keyStep;break;case 39:case 40:M.deltaY=-u(v,d)[d].keyStep;break;case 32:M.deltaY=g*(y.shiftKey?1:-1);break;default:return}v._notify(y)},u(this,n)[n]=window,h&&h.el&&(u(this,n)[n]=h.el,delete h.el),o||(o={hasWheelEvent:"onwheel"in document,hasMouseWheelEvent:"onmousewheel"in document,hasTouch:"ontouchstart"in document,hasTouchWin:navigator.msMaxTouchPoints&&navigator.msMaxTouchPoints>1,hasPointer:!!window.navigator.msPointerEnabled,hasKeyDown:"onkeydown"in document,isFirefox:navigator.userAgent.indexOf("Firefox")>-1}),u(this,d)[d]=Object.assign({mouseMultiplier:1,touchMultiplier:2,firefoxMultiplier:15,keyStep:120,preventTouch:!1,unpreventTouchClass:"vs-touchmove-allowed",useKeyboard:!0,useTouch:!0},h),u(this,f)[f]=new l,u(this,a)[a]={y:0,x:0,deltaX:0,deltaY:0},u(this,t)[t]={x:null,y:null},u(this,s)[s]=null,u(this,d)[d].passive!==void 0&&(this.listenerOptions={passive:u(this,d)[d].passive})}var c=r.prototype;return c._notify=function(h){var v=u(this,a)[a];v.x+=v.deltaX,v.y+=v.deltaY,u(this,f)[f].emit(i,{x:v.x,y:v.y,deltaX:v.deltaX,deltaY:v.deltaY,originalEvent:h})},c._bind=function(){o.hasWheelEvent&&u(this,n)[n].addEventListener("wheel",this._onWheel,this.listenerOptions),o.hasMouseWheelEvent&&u(this,n)[n].addEventListener("mousewheel",this._onMouseWheel,this.listenerOptions),o.hasTouch&&u(this,d)[d].useTouch&&(u(this,n)[n].addEventListener("touchstart",this._onTouchStart,this.listenerOptions),u(this,n)[n].addEventListener("touchmove",this._onTouchMove,this.listenerOptions)),o.hasPointer&&o.hasTouchWin&&(u(this,s)[s]=document.body.style.msTouchAction,document.body.style.msTouchAction="none",u(this,n)[n].addEventListener("MSPointerDown",this._onTouchStart,!0),u(this,n)[n].addEventListener("MSPointerMove",this._onTouchMove,!0)),o.hasKeyDown&&u(this,d)[d].useKeyboard&&document.addEventListener("keydown",this._onKeyDown)},c._unbind=function(){o.hasWheelEvent&&u(this,n)[n].removeEventListener("wheel",this._onWheel),o.hasMouseWheelEvent&&u(this,n)[n].removeEventListener("mousewheel",this._onMouseWheel),o.hasTouch&&(u(this,n)[n].removeEventListener("touchstart",this._onTouchStart),u(this,n)[n].removeEventListener("touchmove",this._onTouchMove)),o.hasPointer&&o.hasTouchWin&&(
27document.body.style.msTouchAction=u(this,s)[s],u(this,n)[n].removeEventListener("MSPointerDown",this._onTouchStart,!0),u(this,n)[n].removeEventListener("MSPointerMove",this._onTouchMove,!0)),o.hasKeyDown&&u(this,d)[d].useKeyboard&&document.removeEventListener("keydown",this._onKeyDown)},c.on=function(h,v){u(this,f)[f].on(i,h,v);var y=u(this,f)[f].e;y&&y[i]&&y[i].length===1&&this._bind()},c.off=function(h,v){u(this,f)[f].off(i,h,v);var y=u(this,f)[f].e;(!y[i]||y[i].length<=0)&&this._unbind()},c.destroy=function(){u(this,f)[f].off(),this._unbind()},r})()})})(He)),He.exports}var en=_t();const tn=ut(en),C=Tt({active:!0,mode:"playground",contentFitRef:ye({current:null}),spawning:!1,empty:!1,spawnCount:0,persistentCount:0,selected:-1,maxShown:gt,canResize:!0,canSelect:!0,canUseWidgets:!0,maxTileSize:{width:vt,height:mt},arrangement:$e,overlapBoundaryScale:ht,tileBodies:ye([]),tileRefs:ye([]),engine:ye(O.Engine.create()),items:[],events:[],router:null,safezone:{left:0,right:0,bottom:0,top:0,get width(){return this.right-this.left},get height(){return this.bottom-this.top}},dragging:ye({body:[],bodyTimer:null,corner:null,maybeClicking:!1,down:!1,downDrag:!1,startPos:{x:0,y:0},currentPos:{x:0,y:0},previousPos:{x:0,y:0},endPos:{x:0,y:0},selecting:!1,selectionComposite:O.Composite.create(),selectionCompositeCornerBodies:[]})}),nn=(L,D,T)=>(T===void 0&&(T=1),L<D?D:L>T?T:L),J=L=>Math.round(L*1e3)/1e3,rn=L=>{var r,c;const D=((r=L.current)==null?void 0:r.getScale())||{x:1,y:1},T=((c=L.current)==null?void 0:c.getPosition())||{x:0,y:0},E=D.x/2,u=D.y/2,{x:e,y:l}={x:T.x-E,y:T.y-u},{x:o,y:i}={x:e-Z,y:l-Z},{x:d,y:n}={x:e+D.x+Z,y:l-Z},{x:f,y:a}={x:e+D.x+Z,y:l+D.y+Z},{x:t,y:s}={x:e-Z,y:l+D.y+Z};return{tlX:o,tlY:i,trX:d,trY:n,brX:f,brY:a,blX:t,blY:s}},pt=L=>{let D=1/0,T=1/0,E=-1/0,u=1/0,e=1/0,l=-1/0,o=-1/0,i=-1/0,d=!1;if(L.bodies.forEach(v=>{var p,b;const y=C.tileRefs.find(P=>{var S;return((S=P==null?void 0:P.ref)==null?void 0:S.getBody())===v});if(!y){d=!0;return}const M=((p=y.ref)==null?void 0:p.getPosition())||{x:0,y:0},g=((b=y.ref)==null?void 0:b.getScale())||{x:1,y:1},m=g.x/2,w=g.y/2;D=Math.min(D,M.x-m),T=Math.min(T,M.y-w),E=Math.max(E,M.x-m+g.x),u=Math.min(u,M.y-w),e=Math.min(e,M.x-m),l=Math.max(l,M.y-w+g.y),o=Math.max(o,M.x-m+g.x),i=Math.max(i,M.y-w+g.y)}),d||L.bodies.length===0)return{tlX:0,tlY:0,trX:1,trY:1,brX:1,brY:1,blX:0,blY:1};const{x:n,y:f}={x:D-Z,y:T-Z},{x:a,y:t}={x:E+Z,y:u-Z},{x:s,y:r}={x:e-Z,y:l+Z},{x:c,y:h}={x:o+Z,y:i+Z};return{tlX:n,tlY:f,trX:a,trY:t,brX:c,brY:h,blX:s,blY:r}},Qe=L=>{const D=C.engine.gravity;L.forEach(T=>{O.Body.applyForce(T,T.position,{x:-D.x*D.scale*T.mass,y:-D.y*D.scale*T.mass})})},sn=(L,D,T,E)=>{let u=L,e=D;const l=D/L,o=E/T;return l>o?(e=E,u=e/l):(u=T,e=u*l),{width:u,height:e}},ge=R.forwardRef((L,D)=>{D=D;const T=R.useRef(null),{tile:E,corner:u,visible:e,composite:l}=L,o=7,i=R.useRef(1),d=R.useRef({width:0,height:0}),n=R.useRef(O.Bodies.rectangle(0,0,o*3,o*3,{isSensor:!0,collisionFilter:{category:X.INTERACT,mask:X.MOUSE}})),f=R.useRef(!1);R.useImperativeHandle(D,()=>Object.assign(T.current,{updatePosition:a}),[]);const a=()=>{const{tlX:r,tlY:c,trX:h,trY:v,brX:y,brY:M,blX:g,blY:m}=E!=null&&E.current?rn(E):pt(C.dragging.selectionComposite);let w=0,p=0;switch(u){case"tl":w=r,p=c;break;case"tr":w=h,p=v;break;case"br":w=y,p=M;break;case"bl":w=g,p=m;break}const b=i.current,P=i.current;T.current&&(T.current.style.transform=`translate(${w-o/2}px, ${p-o/2}px) scale(${b}, ${P})`),d.current={width:h-r,height:m-c},O.Body.setPosition(n.current,{x:w,y:p})},t=()=>{n.current&&Qe([n.current])};R.useLayoutEffect(()=>(O.Events.on(C.engine,"beforeUpdate",t),l&&C.dragging.selectionCompositeCornerBodies.push(n.current),()=>{O.Events.off(C.engine,"beforeUpdate",t),l&&(C.dragging.selectionCompositeCornerBodies=C.dragging.selectionCompositeCornerBodies.filter(r=>r!==n.current)),O.World.remove(C.engine.world,[n.current],!0)}),[]),R.useEffect(()=>{e?O.World.add(C.engine.world,[n.current]):O.World.remove(C.engine.world,[n.current])},[e]);const s=(r,c)=>{r.startResize();const{startPos:h,currentPos:v}=C.dragging,y=v.x-h.x,{width:M,height:g}=r.getResizeDimensions(),w=(M+y*(u==="tl"||u==="bl"?-1:1))/M;r.setScale(M*w,g*w)};return Pe(()=>{var r,c;if(a(),C.dragging.corner===n.current){i.current=1.5,f.current=!0;
27const h=(r=E==null?void 0:E.current)==null?void 0:r.getBody();E&&h&&C.dragging.body.length===1?(C.dragging.bodyTimer&&clearTimeout(C.dragging.bodyTimer),C.dragging.body=[h],s(E.current)):C.dragging.body.length>1&&l&&C.tileRefs.filter(y=>{var M;return((M=y==null?void 0:y.ref)==null?void 0:M.getBody())&&C.dragging.selectionComposite.bodies.includes(y==null?void 0:y.ref.getBody())}).forEach(y=>{y.ref&&s(y.ref)})}else E&&f.current?((c=E.current)==null||c.endResize(),f.current=!1):!E&&f.current&&(C.tileRefs.filter(v=>{var y;return((y=v==null?void 0:v.ref)==null?void 0:y.getBody())&&C.dragging.selectionComposite.bodies.includes(v==null?void 0:v.ref.getBody())}).forEach(v=>{var y;(y=v.ref)==null||y.endResize()}),f.current=!1),i.current=1}),A.jsx("div",{ref:T,className:se("absolute left-0 top-0 bg-black opacity-0",u==="tl"?"cursor-nwse-resize":"",u==="tr"?"cursor-nesw-resize":"",u==="br"?"cursor-nwse-resize":"",u==="bl"?"cursor-nesw-resize":"",e?"pointer-events-auto":""),style:{width:`${o}px`,height:`${o}px`}})}),Fe=({className:L})=>A.jsx("div",{className:se("absolute w-5 h-5 cursor-move transform flex items-center justify-center",L),children:A.jsx("div",{className:"bg-black w-2 h-2"})}),xt=()=>A.jsxs("div",{className:"absolute top-0 left-0 w-full h-full border border-black",children:[A.jsx(Fe,{className:"top-0 left-0 -translate-x-1/2 -translate-y-1/2 cursor-nwse-resize"}),A.jsx(Fe,{className:"top-0 right-0 translate-x-1/2 -translate-y-1/2 cursor-nesw-resize"}),A.jsx(Fe,{className:"bottom-0 left-0 -translate-x-1/2 translate-y-1/2 cursor-nesw-resize"}),A.jsx(Fe,{className:"bottom-0 right-0 translate-x-1/2 translate-y-1/2 cursor-nwse-resize"})]}),on=()=>{const L=Ge(C),D=R.useRef(null),T=R.useRef(null),E=R.useRef(null),u=R.useRef(null),e=R.useRef(null),l=R.useRef(null),o=R.useRef(null),i=R.useRef(null),d=R.useRef(null),n=()=>{if(o.current){const h={x:C.dragging.startPos.x,y:C.dragging.startPos.y},v={x:C.dragging.currentPos.x,y:C.dragging.currentPos.y};o.current.style.transform=`translate(${Math.min(h.x,v.x)}px, ${Math.min(h.y,v.y)}px)`,o.current.style.width=`${Math.abs(h.x-v.x)}px`,o.current.style.height=`${Math.abs(h.y-v.y)}px`,C.dragging.selecting?o.current.style.display="block":o.current.style.display="none"}},f=()=>{if(C.dragging.body.length>1){const{tlX:h,tlY:v,trX:y,trY:M,brX:g,brY:m,blX:w,blY:p}=pt(C.dragging.selectionComposite);i.current&&(i.current.style.transform=`translate(${h}px, ${v}px)`,i.current.style.width=`${Math.abs(y-h)}px`,i.current.style.height=`${Math.abs(p-v)}px`,i.current.style.display="block"),d.current&&(d.current.style.display="block")}else i.current&&(i.current.style.display="none"),d.current&&(d.current.style.display="none")},a=h=>{if(!C.canSelect)return;const v=h.body,y=h.mouse,M=O.Query.point(C.tileBodies,y.position);if(C.dragging.selecting){C.dragging.bodyTimer&&clearTimeout(C.dragging.bodyTimer),C.dragging.corner=null,T.current.constraint.bodyB=null;return}let g=!1;if(C.dragging.body.length>0&&C.dragging.body.forEach(m=>{M.includes(m)&&(g=!0)}),C.dragging.body.length>1&&!g){if(!v.isSensor&&!C.dragging.corner){C.dragging.corner=null,T.current.constraint.bodyB=null;return}else if(v.isSensor&&!C.dragging.corner&&C.dragging.selectionCompositeCornerBodies.indexOf(v)>-1){C.dragging.corner=v;return}}if(!v.isSensor)C.dragging.corner||(C.dragging.bodyTimer&&clearTimeout(C.dragging.bodyTimer),C.dragging.bodyTimer=setTimeout(()=>{if(g)C.dragging.body.length>0&&(T.current.constraint.bodyB=C.dragging.body[0],T.current.constraint.pointB={x:y.position.x-C.dragging.body[0].position.x,y:y.position.y-C.dragging.body[0].position.y});else{if(C.tileRefs.length===0)return;const m=M.sort((w,p)=>{const b=C.tileRefs.find(S=>{var x;return((x=S==null?void 0:S.ref)==null?void 0:x.getBody())===w}),P=C.tileRefs.find(S=>{var x;return((x=S==null?void 0:S.ref)==null?void 0:x.getBody())===p});return((b==null?void 0:b.renderOrder)||0)-((P==null?void 0:P.renderOrder)||0)});C.dragging.body=[m[0]]}},50));else if(C.dragging.body.length<=1){if(!C.canResize)return;C.dragging.corner=v}},t=h=>{h.currentTarget,C.dragging.down=!0,C.dragging.startPos={x:D.current.position.x,y:D.current.position.y},C.dragging.currentPos={x:D.current.position.x,y:D.current.position.y},C.dragging.selecting=!1,C.dragging.downDrag=!1,C.dragging.maybeClicking=!h.shift
27Key;const v=O.Query.point(C.tileBodies,D.current.position);v.length>0&&(C.dragging.downDrag=!0),h.shiftKey&&v.length>0&&C.canSelect&&(C.dragging.body.push(...v),O.Composite.clear(C.dragging.selectionComposite,!0),O.Composite.add(C.dragging.selectionComposite,C.dragging.body))},s=h=>{const v=h.currentTarget;if(C.dragging.currentPos={x:D.current.position.x,y:D.current.position.y},Math.sqrt((C.dragging.currentPos.x-C.dragging.startPos.x)**2+(C.dragging.currentPos.y-C.dragging.startPos.y)**2)>5&&C.dragging.down&&(C.dragging.maybeClicking=!1,v.setPointerCapture(h.pointerId)),C.dragging.down&&!C.dragging.downDrag&&!C.dragging.corner&&(Math.abs(C.dragging.currentPos.x-C.dragging.startPos.x)>1||Math.abs(C.dragging.currentPos.y-C.dragging.startPos.y)>1)&&C.canSelect&&(C.dragging.selecting=!0),C.dragging.selecting&&C.canSelect){const M=O.Query.region(C.tileBodies,{min:{x:Math.min(C.dragging.startPos.x,C.dragging.currentPos.x),y:Math.min(C.dragging.startPos.y,C.dragging.currentPos.y)},max:{x:Math.max(C.dragging.startPos.x,C.dragging.currentPos.x),y:Math.max(C.dragging.startPos.y,C.dragging.currentPos.y)}}),m=[...new Set(M.map(w=>w.id))].map(w=>M.find(p=>p.id===w));C.dragging.body=m,O.Composite.clear(C.dragging.selectionComposite,!0),O.Composite.add(C.dragging.selectionComposite,m)}C.dragging.down&&!C.dragging.selecting&&C.dragging.body.length>1&&!C.dragging.corner&&C.canSelect&&O.Composite.translate(C.dragging.selectionComposite,{x:C.dragging.currentPos.x-C.dragging.previousPos.x,y:C.dragging.currentPos.y-C.dragging.previousPos.y}),C.dragging.previousPos={x:C.dragging.currentPos.x,y:C.dragging.currentPos.y}},r=h=>{var y;h.currentTarget.releasePointerCapture(h.pointerId),C.dragging.down=!1,C.dragging.endPos={x:D.current.position.x,y:D.current.position.y},C.dragging.corner=null,C.dragging.selecting=!1,C.dragging.downDrag=!1;let v=O.Query.point(C.tileBodies,D.current.position);if(C.dragging.maybeClicking&&(v=[],C.dragging.body=[]),Math.abs(C.dragging.currentPos.x-C.dragging.startPos.x)<5&&Math.abs(C.dragging.currentPos.y-C.dragging.startPos.y)<5){let M=!1;if(C.dragging.body.forEach(g=>{v.includes(g)&&(M=!0)}),!M){const g=v.sort((m,w)=>{const p=C.tileRefs.find(P=>{var S;return((S=P.ref)==null?void 0:S.getBody())===m}),b=C.tileRefs.find(P=>{var S;return((S=P.ref)==null?void 0:S.getBody())===w});return p.renderOrder-b.renderOrder});if(C.dragging.body=g.length>0?[g[0]]:v[0]?[v[0]]:[],C.dragging.body.length>0){const m=C.tileRefs.find(w=>{var p;return((p=w.ref)==null?void 0:p.getBody())===C.dragging.body[0]});(y=m==null?void 0:m.ref)==null||y.setAsSelected(!0)}}}setTimeout(()=>{C.dragging.maybeClicking=!1})},c=h=>{h.body;const v=h.mouse;C.dragging.down=!1,C.dragging.endPos={x:v.position.x,y:v.position.y}};return R.useEffect(()=>{const h=document.getElementById("background")||window.document.body;return D.current=O.Mouse.create(h),T.current=O.MouseConstraint.create(C.engine,{mouse:D.current,constraint:{stiffness:.9,render:{visible:!1}},collisionFilter:{category:X.MOUSE,mask:X.INTERACT}}),O.Events.on(T.current,"startdrag",a),h.addEventListener("pointerdown",t),h.addEventListener("pointermove",s),h.addEventListener("pointerup",r),h.addEventListener("pointercancel",r),O.Events.on(T.current,"enddrag",c),O.Composite.add(C.engine.world,T.current),D.current.element.removeEventListener("wheel",D.current.mousewheel),D.current.element.removeEventListener("DOMMouseScroll",D.current.mousewheel),()=>{D.current&&T.current&&(O.Events.off(T.current,"startdrag",a),O.Events.off(T.current,"enddrag",c),O.Composite.remove(C.engine.world,T.current),D.current=null,T.current=null),h.removeEventListener("pointerdown",t),h.removeEventListener("pointermove",s),h.removeEventListener("pointerup",r),h.removeEventListener("pointercancel",r)}},[]),R.useEffect(()=>{const h=[{event:"mousemove",handler:"mousemove"},{event:"mousedown",handler:"mousedown"},{event:"mouseup",handler:"mouseup"},{event:"touchmove",handler:"mousemove"},{event:"touchstart",handler:"mousedown"},{event:"touchend",handler:"mouseup"}];h.forEach(({event:v,handler:y})=>{D.current.element.removeEventListener(v,D.current[y])}),C.canSelect&&h.forEach(({event:v,handler:y})=>{D.current.element.addEventListener(v,D.current[y])})},[L.canSelect]),Pe(()=>{n(),f()}),A.jsxs("div",{className:"absolute left-0 top-0 w-full h-full pointer-events-none",children:[A.jsxs("div",{ref:d,className:"absolute left-0 top-0 w-full h-full pointer-events-none",children:[A.jsx(ge,{corner:"tl",ref:E,composite:!0,visible:!0}),A.jsx(ge,{corner:"tr",ref:u,composite:!0,visible:!0}),A.jsx(ge,{corner:"br",ref:e,composite:!0,visible:!0}),A.jsx(ge,{corner:"bl",ref:l,composite:!0,visible:!0})]}),A.jsx("div",{ref:o,className:"absolute top-0 left-0 border border-dashed border-[#999999] hidden"}),A.jsx("div",{ref:i,className:"absolute top-0 left-0 hidden cursor-grab active:cursor-grabbing",children:A.jsx(xt,{})})]})},st=R.forwardRef(({url:L,index:D,slot:T,renderOrder:E,children:u,width:e,height:l,isHTML:o},i)=>{i=i;const{width:d,height:n}=Ke(),f=R.useRef({x:1,y:1}),a=R.useRef({x:0,y:0}),t=R.useRef({x:e||1,y:l||1}),s=R.useRef({x:t.current.x,y:t.current.y}),r=R.useRef({x:1,y:1}),c=R.useRef({x:100,y:100}),h=R.useRef({width:0,height:0}),v=R.useRef({x:0,y:0}),y=R.useRef(!1),M=R.useRef({x:0,y:0}),[g,m]=R.useState(!1),[w,p]=R.useState(!0),b=R.useRef(0),P=R.useRef(1),S=R.useRef(1),x=R.useRef(null),B=R.useRef(null),I=R.useRef(null),F=R.useRef(null),N=R.useRef(null),k=R.useRef(null),H=R.useRef(0),V=R.useRef(null),j=R.useRef(O.Bodies.rectangle(M.current.x,M.current.y,f.current.x,f.current.y,{frictionAir:.15,collisionFilter:{category:X.GENERAL,mask:X.MOUSE|X.GENERAL}})),U=R.useRef(O.Bodies.rectangle(M.current.x,M.current.y,f.current.x,f.current.y,{frictionAir:.15,collisionFilter:{category:X.INTERACT,mask:X.MOUSE}})),G=R.useRef(E),[$,oe]=R.useState(!1),_=R.useRef({col:0,row:0}),z=Ge(C);R.useImperativeHandle(i,()=>Object.assign(x.current,{getPosition:Ce,setPosition:ie,setDefaultScale:te,setScale:ne,getScale:Q,getResizeDimensions:We,setRe
27sizeDimensions:ve,getResizePosition:je,startResize:Te,endResize:Be,getBody:Ee,setRenderOrder:ee,getRenderOrder:K,setAsSelected:le,refresh:Me,sunset:Re,getIsSunset:Le,setLife:Ae,getIndex:Ie,getArrangement:me,getArrangementPosition:De}),[]);const ee=W=>{G.current=W},K=()=>G.current,le=W=>{m(W),W&&(C.selected=-1,C.selected=T)},te=(W,Y)=>{W&&Y&&(t.current.x=W,t.current.y=Y)},ne=(W,Y)=>{s.current.x=Math.max(W,t.current.x*.2),s.current.y=Math.max(Y,t.current.y*.2)},Q=()=>({x:s.current.x,y:s.current.y}),ve=(W,Y)=>{h.current.width=W,h.current.height=Y},We=()=>{if(h.current.width===0||h.current.height===0){const{x:W,y:Y}=Q();ve(W,Y)}return{width:h.current.width,height:h.current.height}},je=()=>({x:v.current.x,y:v.current.y}),Te=()=>{y.current||(v.current.x=U.current.position.x,v.current.y=U.current.position.y,y.current=!0)},Be=()=>{y.current&&(ve(s.current.x,s.current.y),y.current=!1)},Ce=()=>({x:a.current.x,y:a.current.y}),ie=(W,Y)=>{O.Body.setPosition(j.current,{x:W,y:Y})},Ee=()=>U.current,Me=(W,Y)=>{W&&Y&&(W!==t.current.x||Y!==t.current.y)&&(te(W,Y),ne(t.current.x,t.current.y),ve(0,0))},Re=W=>{oe(W)},Le=()=>$,Ae=W=>{P.current=W},Ie=()=>D,me=()=>_.current,De=()=>{const{col:W,row:Y}=zt(D,C.arrangement),re=C.arrangement[0].length,q=d/re,ae=n/re,ce=C.canSelect?Math.random()*q:0,ue=C.canSelect?Math.random()*ae:0,fe=q*W+q/3,bt=ae*(Y%re)+ae/3;return _.current={col:W,row:Y},{x:fe,y:bt,rx:ce,ry:ue}},Ve=W=>{if(C.mode==="playground"){const q=C.safezone,ae=q.left+c.current.x/2,ce=q.right-c.current.x/2,ue=q.top+c.current.y/2,fe=q.bottom-c.current.y/2;j.current.position.x<ae&&O.Body.setPosition(j.current,{x:ae,y:j.current.position.y}),j.current.position.x>ce&&O.Body.setPosition(j.current,{x:ce,y:j.current.position.y}),j.current.position.y<ue&&O.Body.setPosition(j.current,{x:j.current.position.x,y:ue}),j.current.position.y>fe&&O.Body.setPosition(j.current,{x:j.current.position.x,y:fe})}O.Body.setAngularVelocity(j.current,0),O.Body.setAngularVelocity(U.current,0);const{x:Y,y:re}=j.current.position;x.current&&(C.mode==="playground"?(a.current.x+=(Y-a.current.x)*ke.POSITION,a.current.y+=(re-a.current.y)*ke.POSITION):(a.current.x=Y,a.current.y=re)),(C.dragging.body.includes(U.current)||C.dragging.body.includes(j.current))&&C.dragging.body.length===1&&!g&&!C.dragging.maybeClicking?le(!0):!((C.dragging.body.includes(U.current)||C.dragging.body.includes(j.current))&&C.dragging.body.length===1)&&g&&le(!1),C.mode==="playground"&&(C.dragging.body.includes(U.current)?O.Body.setPosition(j.current,U.current.position):O.Body.setPosition(U.current,j.current.position))},pe=()=>{const W=Vt();S.current+=(P.current-S.current)*.1;const Y=S.current,re=(s.current.x||1)*C.overlapBoundaryScale*W,q=(s.current.y||1)*C.overlapBoundaryScale*W;if(r.current.x!==re||r.current.y!==q){const ue=J(re/r.current.x),fe=J(q/r.current.y);O.Body.scale(j.current,ue,fe),r.current.x=re,r.current.y=q}const ae=(s.current.x||1)*W,ce=(s.current.y||1)*W;if(f.current.x!==ae||f.current.y!==ce){const ue=J(ae/f.current.x),fe=J(ce/f.current.y);O.Body.scale(U.current,ue,fe),f.current.x=ae,f.current.y=ce}c.current.x+=(s.current.x*W*Y-c.current.x)*ke.SCALE,c.current.y+=(s.current.y*W*Y-c.current.y)*ke.SCALE},xe=()=>{H.current=500-G.current,k.current&&(k.current.style.width=`${t.current.x}px`,k.current.style.height=`${t.current.y}px`,k.current.style.marginLeft=`-${t.current.x/2}px`,k.current.style.marginTop=`-${t.current.y/2}px`,k.current.style.transform=`translate(${a.current.x}px, ${a.current.y}px) scale(${J(c.current.x/t.current.x)}, ${J(c.current.y/t.current.y)})`,k.current.style.opacity=S.current.toString(),k.current.style.zIndex=H.current.toString())},Mt=()=>{const W=Z*2;V.current&&(V.current.style.width=`${c.current.x+W}px`,V.current.style.height=`${c.current.y+W}px`,V.current.style.marginLeft=`-${(c.current.x+W)/2}px`,V.current.style.marginTop=`-${(c.current.y+W)/2}px`,V.current.style.transform=`translate(${a.current.x}px, ${a.current.y}px)`,V.current.style.zIndex=H.current.toString())},Je=()=>{w&&Qe([j.current,U.current])},qe=()=>{const{x:W,y:Y,rx:re,ry:q}=De();a.current.x=window.innerWidth/2,a.current.y=window.innerHeight/2,O.Body.setPosition(j.current,{x:W+re,y:Y+q}),O.Body.setPosition(U.current,{x:W+re,y:Y+q})};return Pe(W=>{x.current&&(pe(),Ve(),xe(),Mt())}),R.useEffect(()=>{z.mode==="playground"&&qe()},[z.mode]),R.useEffect(()=>{b.current&&clearTimeout(b.current),$?(j.current.collisionFilter.group=-1,U.current.collisionFilter.group=-1,P.current=0,b.current=setTimeout(()=>{p(!1)}
27,500)):(j.current.collisionFilter.group=0,U.current.collisionFilter.group=0,P.current=1,p(!0))},[$]),R.useEffect(()=>{if(w)O.World.add(C.engine.world,[U.current,j.current]),C.tileBodies.push(U.current),qe();else{const W=C.tileBodies.indexOf(U.current);W>-1&&C.tileBodies.splice(W,1),O.World.remove(C.engine.world,[U.current,j.current],!0)}},[w]),R.useLayoutEffect(()=>(O.Events.on(C.engine,"beforeUpdate",Je),()=>{O.Events.off(C.engine,"beforeUpdate",Je);const W=C.tileBodies.indexOf(U.current);W>-1&&C.tileBodies.splice(W,1),O.World.remove(C.engine.world,[U.current,j.current],!0)}),[]),A.jsxs("div",{ref:x,className:"absolute left-0 top-0 w-full h-full pointer-events-none",children:[A.jsx(ge,{tile:i,visible:w&&g,corner:"tl",ref:B}),A.jsx(ge,{tile:i,visible:w&&g,corner:"tr",ref:I}),A.jsx(ge,{tile:i,visible:w&&g,corner:"br",ref:F}),A.jsx(ge,{tile:i,visible:w&&g,corner:"bl",ref:N}),A.jsx("div",{ref:V,className:"absolute left-0 top-0 origin-center pointer-events-none",children:w&&g&&A.jsx(xt,{})}),A.jsx("div",{ref:k,className:"relative origin-center",children:w&&A.jsx("div",{className:"w-full h-full cursor-grab active:cursor-grabbing relative",children:u})})]})}),an=()=>{const{width:L,height:D}=Ke(),T=R.useRef({top:{x:1e3,y:10},bottom:{x:1e3,y:10},left:{x:10,y:1e3},right:{x:10,y:1e3}}),E=R.useRef({top:O.Bodies.rectangle(500,0,T.current.top.x,T.current.top.y,{isStatic:!0}),bottom:O.Bodies.rectangle(500,1e3,T.current.bottom.x,T.current.bottom.y,{isStatic:!0}),left:O.Bodies.rectangle(0,500,T.current.left.x,T.current.left.y,{isStatic:!0}),right:O.Bodies.rectangle(1e3,500,T.current.right.x,T.current.right.y,{isStatic:!0})});return R.useEffect(()=>{for(const u in E.current)O.World.add(C.engine.world,E.current[u]);return()=>{for(const u in E.current)O.World.remove(C.engine.world,E.current[u])}},[]),R.useEffect(()=>Bt(C,()=>{const u=C.safezone,e=window.innerWidth,l=window.screen.availHeight,o=e/2,i=l/2,d=e*2,n=u.top*2,f=e*2,a=(l-u.bottom)*2,t=u.left*2,s=l*2,r=(e-u.right)*2,c=l*2;O.Body.setPosition(E.current.top,{x:o,y:u.top-n/2}),O.Body.setPosition(E.current.bottom,{x:o,y:u.bottom+a/2}),O.Body.setPosition(E.current.left,{x:u.left-t/2,y:i}),O.Body.setPosition(E.current.right,{x:u.right+r/2,y:i}),O.Body.scale(E.current.top,d/T.current.top.x,n/T.current.top.y),O.Body.scale(E.current.bottom,f/T.current.bottom.x,a/T.current.bottom.y),O.Body.scale(E.current.left,t/T.current.left.x,s/T.current.left.y),O.Body.scale(E.current.right,r/T.current.right.x,c/T.current.right.y),T.current.top.x=d,T.current.top.y=n,T.current.bottom.x=f,T.current.bottom.y=a,T.current.left.x=t,T.current.left.y=s,T.current.right.x=r,T.current.right.y=c}),[]),null},be=({title:L,children:D})=>A.jsxs("div",{className:"w-full h-full border-t border-solid border-black bg-grey-light px-4 py-5",children:[L&&A.jsx("h2",{className:"type-ui-s-roman-caps text-grey mb-4",children:L}),A.jsx("div",{className:se("w-full relative",L?"h-[calc(100%-var(--spacing-5))]":"h-full"),children:D})]}),ze=["I am a vector warrior in a raster world.","I am scaling proportionally every day.","I am at peace with my file naming conventions.","I deserve happiness (a 12 month Adobe subscription).","I choose to not know where my scratch disks are and why they are full.","I forgive myself for not converting to smart object.","I am unique and special, existing at the intersection of art and design.","I am in harmony with the flow of life and Figma prototypes.","I have the power to make the design ‘pop’.","I release the need for approval from others (not including clients, creative directors and colleagues)","I am aligned—vertically, horizontally, and spiritually.","I give myself permission to outline my fonts."],yt=()=>{const[L,D]=R.useState(0),T=R.useRef((()=>{const u=[...Array(ze.length)].map((e,l)=>l);return u.sort(()=>Math.random()-.5),u})()),E=ze[T.current[L]];return A.jsx(be,{title:"Affirmations",children:A.jsxs("div",{className:"w-full h-full flex justify-between flex-col",children:[A.jsx("p",{className:se("type-title-s-medium",E.length>50?"type-title-xs-medium":""),children:E}),A.jsx(Se,{className:"w-fit pointer-events-auto",onClick:()=>D((L+1)%ze.length),children:"Generate"})]})})};yt.widgetConfig={id:"affirmations",width:181,height:226,isHTML:!0,alwaysOnTop:!1,persist:!1};const Ye=10,wt=()=>{const[L,D]=R.useState(!1),T=R.useRef(null),E=R.useRef({top:{body:O.Bodies.rectangle(0,0,1,1,{isStatic:!0,collisionFilter:{category:X.WALL,mask:X.BALL}}),bodyScale:{x:1,y:1}},bottom:{body:O.Bodies.rectangle(0,0,1,1,{isStatic:!0,collisionFilter:{category:X.WALL,mask:X.BALL}}),bodyScale:{x:1,y:1}},left:{body:O.Bodies.rectangle(0,0,1,1,{isStatic:!0,collisionFilter:{category:X.WALL,mask:X.BALL}}),bodyScale:{x:1,y:1}},right:{body:O.Bodies.rectangle(0,0,1,1,{isStatic:!0,collisionFilter:{category:X.WALL,mask:X.BALL}}),bodyScale:{x:1,y:1}}}),u=[...Array(Ye)].map(()=>R.useRef(null)),e=R.useRef([...Array(Ye)].map(()=>({life:1,lifeLerp:1,body:O.Bodies.rectangle(0,0,1,1,{isStatic:!0,collisionFilter:{category:X.BRICK,mask:X.BALL}}),bodyScale:{x:1,y:1}}))),l=R.useRef(0),o=R.useRef(null),i=R.useRef({started:!1,position:{x:0,y:0},body:O.Bodies.circle(0,0,1,{friction:0,frictionAir:0,frictionStatic:0,restitution:1,collisionFilter:{category:X.BALL,mask:X.WALL|X.BRICK}}),bodyScale:{r:1}}),d=R.useRef(null),n=R.useRef({position:{x:0,y:0},body:O.Bodies.rectangle(0,0,1,1,{collisionFilter:{category:X.WALL,mask:X.BALL}}),bodyScale:{x:1,y:1}}),f=()=>{if(T.current){if(Qe([i.current.body,n.current.body]),i.current.body.speed<4&&O.Body.setSpeed(i.current.body,4),
27!i.current.started){const t=T.current.offsetWidth,s=T.current.offsetHeight;O.Body.setPosition(i.current.body,{x:t/2,y:s/2})}O.Body.setAngle(n.current.body,0)}},a=()=>{l.current=0,i.current.started=!1,D(!1),e.current.forEach(t=>{t.life=1,t.lifeLerp=1,t.body.isSensor=!1})};return R.useEffect(()=>(O.Resolver._restingThresh=.001,O.World.add(C.engine.world,[E.current.top.body,E.current.bottom.body,E.current.left.body,E.current.right.body,...e.current.map(t=>t.body),i.current.body,n.current.body]),()=>{O.World.remove(C.engine.world,[E.current.top.body,E.current.bottom.body,E.current.left.body,E.current.right.body,...e.current.map(t=>t.body),i.current.body,n.current.body])}),[]),R.useLayoutEffect(()=>(O.Events.on(C.engine,"beforeUpdate",f),()=>{O.Events.on(C.engine,"beforeUpdate",f)}),[]),Pe(()=>{var b,P;if(!T.current)return;const t=(b=T.current)==null?void 0:b.offsetWidth,s=(P=T.current)==null?void 0:P.offsetHeight;if(t===0||s===0)return;const r=T.current.getBoundingClientRect(),c=r.width;r.height;const h=r.left;r.top;const v=100;if(O.Body.scale(E.current.top.body,t/E.current.top.bodyScale.x,v/E.current.top.bodyScale.y),E.current.top.bodyScale.x=t,E.current.top.bodyScale.y=v,O.Body.setPosition(E.current.top.body,{x:t/2,y:-v/2}),O.Body.scale(E.current.bottom.body,t/E.current.bottom.bodyScale.x,v/E.current.bottom.bodyScale.y),E.current.bottom.bodyScale.x=t,E.current.bottom.bodyScale.y=v,O.Body.setPosition(E.current.bottom.body,{x:t/2,y:s+v/2}),O.Body.scale(E.current.left.body,v/E.current.left.bodyScale.x,s/E.current.left.bodyScale.y),E.current.left.bodyScale.x=v,E.current.left.bodyScale.y=s,O.Body.setPosition(E.current.left.body,{x:-v/2,y:s/2}),O.Body.scale(E.current.right.body,v/E.current.right.bodyScale.x,s/E.current.right.bodyScale.y),E.current.right.bodyScale.x=v,E.current.right.bodyScale.y=s,O.Body.setPosition(E.current.right.body,{x:t+v/2,y:s/2}),u.forEach((S,x)=>{var H,V;if(!S.current)return;const B=e.current[x],I=S.current.offsetWidth,F=S.current.offsetHeight;O.Body.scale(B.body,I/B.bodyScale.x,F/B.bodyScale.y),B.bodyScale.x=I,B.bodyScale.y=F;const N=t/5*(x%5),k=Math.floor(x/5)*F;O.Body.setPosition(B.body,{x:N+I/2,y:k+F/2}),S.current.style.transform=`translate(${J(N)}px, ${J(k)}px)`,B.lifeLerp+=(B.life-B.lifeLerp)*.1,S.current.style.opacity=`${J(B.lifeLerp)}`,i.current.started&&((H=O.Collision.collides(B.body,i.current.body))!=null&&H.collided&&B.life===1&&(B.life=0,B.body.isSensor=!0,l.current++,l.current===Ye&&a()),(V=O.Collision.collides(E.current.bottom.body,i.current.body))!=null&&V.collided&&a())}),!o.current)return;const y=o.current.offsetWidth/2;O.Body.scale(i.current.body,y/i.current.bodyScale.r,y/i.current.bodyScale.r),i.current.bodyScale.r=y;const M=i.current.body.position;if(i.current.position.x=M.x,i.current.position.y=M.y,o.current.style.transform=`translate(${J(M.x-y/2)}px, ${J(M.y-y/2)}px)`,!d.current)return;const g=d.current.offsetWidth,m=d.current.offsetHeight,w=100;O.Body.scale(n.current.body,g/n.current.bodyScale.x,w/n.current.bodyScale.y),n.current.bodyScale.x=g,n.current.bodyScale.y=w;const p=C.dragging.currentPos.x;if(C.dragging.currentPos.y,!i.current.started)n.current.position.x=t/2-g/2,n.current.position.y=s-m;else{const S=t/c;n.current.position.x=nn((p-h)*S-g/2,0,t-g),n.current.position.y=s-m}O.Body.setPosition(n.current.body,{x:n.current.position.x+g/2,y:n.current.position.y+w/2-m/2}),d.current.style.transform=`translate(${J(n.current.position.x)}px, ${J(n.current.position.y)}px)`}),R.useEffect(()=>{L?(O.Body.applyForce(i.current.body,i.current.body.position,{x:.001*Math.random(),y:.002}),O.Body.setAngularSpeed(i.current.body,.1),i.current.started=!0):(O.Body.setVelocity(i.current.body,{x:0,y:0}),i.current.started=!1)},[L]),A.jsx(be,{title:"I hope this email finds you well",children:A.jsxs("div",{ref:T,className:"absolute w-full h-full top-0 left-0 pointer-events-none",children:[u.map((t,s)=>A.jsx("div",{ref:t,className:"w-[20%] absolute top-0 left-0",children:A.jsx("img",{src:"/wp-content/themes/agda/assets/images/tiles/widgets/emailbreaker/email.svg",className:"w-full h-auto block p-[1px]"})},s)),A.jsx("div",{ref:o,className:"w-4 h-4 bg-black absolute top-0 left-0 rounded-full"}),A.jsx("div",{ref:d,className:"w-8 h-[11px] bg-black absolute top-0 left-0"}),!L&&A.jsx("div",{className:"absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 pointer-events-auto",children:A.jsx(Se,{onClick:()=>D(!0),children:"Start"})})]})})};wt.widgetConfig={id:"email-breaker",width:287,height:287,isHTML:!0,alwaysOnTop:!1,persist:!1};const Xe=["Until Our Curves Meet and Pens Are Found","May Your Entanglement Be Minimal—Like My Effort","Wishing Optimal Convergence and No Zoom Issues","Farewell Until Metrics Align and Coffee Works","May Your Parameters Stay Consistent—Like My Snacks","Parting in Eigenvectors and Avoiding Awkwardness","Until Our Domains Overlap and Mug Mystery Solved","May Your Gradients Be Smooth and WiFi Strong","Farewell Until Tensors Match and Temp Is Fixed","Wishing Precision and a Great Lunch Break","Until Our Axes Align and We Find the Remote","May Your Vectors Be Straight and Coffee Hot","Wishing Smooth Transitions and No Email Glitches","Farewell Until Coordinates Match and Printer Works","May Your Entropy Be Low and WiFi Fast","Parting in Parallel Lines and No Zoom Fatigue","Until Our Phases Sync and Snacks Are Restocked","May Your Data Be Clean and Meetings Short","Farewell Until Systems Align and AC Cools","Wishing Consistent Results and Endless Coffee","Until Functions Integrate and WiFi Stays Strong","May Your Variables Be Stable and Days Short","Parting in Harmony and Delicious Lunches","Until Equations Balance and Chair Reclines","Wishing Optimal Parameters and Perfect Timing","Farewell Until Curves Align and Mystery Solved","May Your Insights Be Clear and Deadlines Flexible","Parting in Quantum States and Finding Pens","Until Systems Sync and Snacks Are Plenty","Wishing Accurate Predictions and No Spills","Farewell Until Vectors Align and Coffee’s Hot","May Your Margins Be Generous and Days Smooth","Parting in Precision and Printer Doesn’t Jam"],St=()=>{const[L,D]=R.useState(0),T=R.useRef((()=>{const E=[...Array(Xe.length)].map((u,e)=>e);return E.sort(()=>Math.random()-.5),E})());return A.jsx(be,{title:"Email Sign-Off",children:A.jsxs("div",{className:"w-full h-full flex justify-between flex-col",children:[A.jsx("p",{className:"type-title-m-serif",children:Xe[T.current[L]]}),A.jsx(Se,{className:"w-fit pointer-events-auto",onClick:()=>D((L+1)%Xe.length),children:"Generate"})]})})};St.widgetConfig={id:"email-signoff",width:287,height:198,isHTML:!0,alwaysOnTop:!1,persist:!1};const ln=L=>L.split(",").map(T=>{const E=T.trim().split(".");return`${E.slice(0,-1).join(".").replace(/ /g,"%20")}.${E[E.length-1]}`}
27).join(", "),we=({src:L,url:D,tile:T,flipId:E})=>{const u=R.useRef(null);return R.useEffect(()=>{if(!u.current||!T.current)return;const e=()=>{var a,t,s,r;if(!((a=u.current)!=null&&a.naturalWidth)||!((t=u.current)!=null&&t.naturalHeight))return;const{naturalWidth:l,naturalHeight:o}=u.current,i=l,d=o,{width:n,height:f}=sn(i,d,C.maxTileSize.width,C.maxTileSize.height);(s=T.current)==null||s.setDefaultScale(n,f),(r=T.current)==null||r.setScale(n,f)};return u.current.addEventListener("load",e),()=>{var l;(l=u.current)==null||l.removeEventListener("load",e)}},[u.current,T.current]),A.jsx("div",{className:"relative group pointer-events-auto",children:A.jsx("a",{href:D,draggable:!1,onClick:e=>{var l;D&&!e.shiftKey&&(C.dragging.maybeClicking||!C.canSelect)?(l=C.router)==null||l.handleClickEvent(e,D):e.preventDefault()},children:A.jsx(dt,{flipId:E,children:A.jsx("img",{ref:u,srcSet:ln(L),className:"pointer-events-none"})})})})};we.widgetConfig={id:"image",width:181,height:226,isHTML:!0,alwaysOnTop:!1,persist:!1};const he=4,de={LINK:{width:17,height:27,url:"/wp-content/themes/agda//assets/images/tiles/widgets/punching-bag/link.png"},BAG:{width:106,height:348,url:"/wp-content/themes/agda//assets/images/tiles/widgets/punching-bag/bag.png"}},Ze=()=>{const L=R.useRef(null),D=R.useRef(null),T=R.useRef(O.Composites.stack(0,0,he,1,10,10,(s,r,c)=>{const h=c===he-1,v=h?de.BAG.height:de.LINK.height,y=h?de.BAG.width:de.LINK.width,M={density:h?.001:.002};M.isSensor=!0;//!last
28return O.Bodies.rectangle(s,r,v,y,M)})),E=R.useRef(O.Constraint.create({bodyB:T.current.bodies[0],pointB:{x:-25,y:0},pointA:{x:T.current.bodies[0].position.x,y:T.current.bodies[0].position.y},stiffness:.75,damping:.1})),u=R.useRef(O.Composites.chain(T.current,.5,0,-.5,0,{stiffness:.85,damping:.1,length:2})),e=[...Array(he)].map(()=>R.useRef(null)),l=R.useRef({x:0,y:0}),o=R.useRef({x:0,y:0}),i=R.useRef([...Array(he)].map(()=>({x:0,y:0,r:0}))),d=R.useRef(!1),n=()=>{var r;const s=(r=D.current)==null?void 0:r.getBoundingClientRect();s&&(l.current.x=s.x,l.current.y=s.y)},f=()=>{n();const s=l.current.x,r=l.current.y;E.current.pointA={x:s,y:r},d.current||(O.Composite.allBodies(u.current).forEach(c=>{O.Body.setPosition(c,{x:s,y:r}),O.Body.setSpeed(c,0),O.Body.setVelocity(c,{x:0,y:0}),O.Body.setAngularVelocity(c,0)}),d.current=!0),o.current={x:s,y:r}},a=()=>{T.current.bodies.forEach((s,r)=>{const c=s.position,h=l.current,v=i.current[r+1],y=s.angle-Math.PI/2,M=c.x-h.x,g=c.y-h.y,m=r===he-1?de.BAG.height:de.LINK.height,w=.1;i.current[r].x+=(M-i.current[r].x)*w,i.current[r].y+=(g-i.current[r].y)*w,i.current[r].r+=(y-i.current[r].r)*w;const p=v?-Math.atan2(i.current[r].x-v.x,i.current[r].y-v.y-m/2):i.current[r].r;e[r].current.style.transform=`translate(${J(i.current[r].x)}px, ${J(i.current[r].y)}px) rotate(${J(p)}rad)`})},t=s=>{if(s<he-1)return;const r=T.current.bodies[s],c=Math.random()>.5?1:-1,h=(Math.random()*3+2)*c;O.Body.applyForce(r,r.position,{x:h,y:-.1})};return R.useEffect(()=>(O.Composite.add(u.current,E.current),O.Composite.add(C.engine.world,[u.current,E.current]),()=>{O.Composite.clear(u.current,!1,!0),O.Composite.remove(C.engine.world,[u.current,E.current],!0)}),[]),Pe(()=>{f(),a()}),A.jsxs(A.Fragment,{children:[A.jsx(be,{title:"Punching bag"}),A.jsx("div",{ref:L,className:"absolute top-0 left-0 w-full h-full",children:A.jsx("div",{ref:D,className:"absolute top-0 left-0",style:{marginLeft:Ze.widgetConfig.width/2},children:e.map((s,r)=>{const c=r===he-1,h=c?de.BAG:de.LINK;return A.jsx("div",{ref:s,className:se("absolute top-0 left-0 origin-center",c?"pointer-events-auto cursor-pointer":""),style:{width:h.width,height:h.height,marginLeft:-h.width/2,marginTop:-h.height/2},onClick:()=>t(r),children:A.jsx("img",{src:h.url,className:"w-full h-full pointer-events-none",alt:""})},r)})})})]})};Ze.widgetConfig={id:"punching-bag",width:287,height:541,isHTML:!0,alwaysOnTop:!1,persist:!1};const Pt=()=>{var D,T;const L=Et(E=>E.latestAward);return console.log({latestAward:L}),A.jsx(be,{title:`AGDA Awards ${(D=L==null?void 0:L.info)==null?void 0:D.awardYear}`,children:A.jsxs("div",{className:"w-full h-full flex justify-between flex-col",children:[A.jsxs("p",{className:"type-title-l-medium",children:[A.jsx("div",{className:"text-black",children:(L==null?void 0:L.statusText)||Dt((T=L==null?void 0:L.info)==null?void 0:T.status)}),A.jsx("div",{className:"text-grey",children:L==null?void 0:L.subtitle})]}),A.jsx(Se,{onClick:E=>{var u;(u=C.router)==null||u.handleClickEvent(E,"/awards")},className:"w-fit pointer-events-auto",rightIcon:A.jsx(Rt,{}),children:"Read More"})]})})};Pt.widgetConfig={id:"finalists",width:287,height:198,isHTML:!0,alwaysOnTop:!0,persist:!0};const Ct=()=>A.jsx("div",{className:"flex w-full h-full justify-center items-center",children:A.jsx(Se,{onClick:L=>{var D;(D=C.router)==null||D.handleClickEvent(L,"/join")},className:"w-fit pointer-events-auto",children:"Become an AGDA member"})});Ct.widgetConfig={id:"become-a-member",width:220,height:100,isHTML:!0,alwaysOnTop:!0,persist:!0};const ot=({onClick:L,title:D,icon:T,className:E})=>{const[u,e]=R.useState(!1);return A.jsxs("div",{className:se("pointer-events-auto relative",E),children:[A.jsx("p",{className:se("absolute left-1/2 -top-4 -translate-x-1/2 -translate-y-1/2 type-ui-s-roman-caps mb-2 text-center opacity-0 transition-opacity duration-300",u&&"md:opacity-100"),children:D}),A.jsx(Se,{leftIcon:T||A.jsx(ft,{}),onClick:L,variant:"glass",size:"lgSquare",onMouseOver:()=>e(!0),onMouseOut:()=>e(!1)})]})},at=[wt,yt,Ze,St],lt=[Pt,Ct];function cn(){const{width:L,height:D}=Ke(),T=[...Array(Oe)].map(()=>R.useRef(null)),E=[...Array(lt.length)].map(()=>R.useRef(null)),u=R.useRef([]),e=R.useRef([]),l=R.useRef([]),o=R.useRef([]),i=Ge(C),d=R.useRef(0),n=R.useRef(null),f=R.useRef(null),a=R.useRef([]),t=R.useRef({elapsed:0,then:0,fps:60}),[s,r]=R.useState(!1),c=({slot:S})=>(R.useEffect(()=>{var B,I;m();const x=l.current[S];x!=null&&x.ref&&!((B=x==null?void 0:x.ref)!=null&&B.getIsSunset())&&((I=x.ref)==null||I.refresh(x.width,x.height))},[]),null),h=({slot:S})=>(R.useEffect(()=>{var B,I;m();const x=o.current[S];x!=null&&x.ref&&!((B=x==null?void 0:x.ref)!=null&&B.getIsSunset())&&((I=x.ref)==null||I.refresh(x.width,x.height))},[]),null);C.engine.gravity.y=5,C.engine.positionIterations=10,C.engine.velocityIterations=10;const v=(S,x)=>{var F,N,k,H;let B=l.current;u.current.unshift(S);let I=C.canUseWidgets&&(C.spawnCount%C.maxShown===C.maxShown-1||!((F=x==null?void 0:x.hero)!=null&&F.srcSet))?at[d.current++%at.length]:null;B[S]=Object.assign({},{index:C.spawnCount%Oe,slot:S,renderOrder:0,ref:(N=B[S])==null?void 0:N.ref,content:(k=x==null?void 0:x.hero)!=null&&k.srcSet?A.jsx(we,{src:(H=x.hero)==null?void 0:H.srcSet,url:x.uri,tile:T[S],flipId:x.id}):null,isHTML:we.widgetConfig.isHTML,alwaysOnTop:we.widgetConfig.alwaysOnTop,persist:we.widgetConfig.persist,id:we.widgetConfig.id},I?{content:A.jsx(I,{}),width:I.widgetConfig.width,height:I.widgetConfig.height,isHTML:I.widgetConfig.isHTML,alwaysOnTop:I.widgetConfig.alwaysOnTop,persist:I.widgetConfig.persist,id:I.widgetConfig.id}:{}),C.spawnCount++},y=(S,x)=>{var I;let B=o.current;e.current.unshift(S),B[S]=Object.assign({},{index:C.persistentCount%Oe,slot:S,renderOrder:0,ref:(I=B[S])==null?void 0:I.ref,content:A.jsx(x,{}),width:x.widgetConfig.width,height:x.widgetConfig.height,isHTML:x.widgetConfig.isHTML,alwaysOnTop:x.widgetConfig.alwaysOnTop,persist:x.widgetConfig.persist,id:x.widgetConfig.id}),C.persistentCount++},M=()=>{[...l.current,...o.current].forEach((S,x)=>{C.tileRefs[x]=S})},g=S=>{var x;if(l.current[S]&&T[S].current){const B=u.current.indexOf(S);return(x=T[S].current)==null||x.sunset(!0),delete l.current[S],u.current.splice(B,1),C.selected=-1,!0}return!1},m=()=>{var B,I,F,N;let S=[...new Set(u.current)];u.current=S;for(let k=0;k<S.length;k++)if(T[S[k]].current){if(k<C.maxShown){const H=l.current[S[k]].alwaysOnTop?-1:k;l.current[S[k]].renderOrder=H,l.current[S[k]].ref=T[S[k]].current,(B=T[S[k]].current)==null||B.setRenderOrder(H),(I=T[S[k]].current)==null||I.sunset(!1)}else if(g(S[k]))return m()}let x=[...new Set(e.current)];e.current=x;for(let k=0;k<x.length;k++)if(E[x[k]].current){const H=o.current[x[k]].alwaysOnTop?-1:k;o.current[x[k]].renderOrder=H,o.current[x[k]].ref=E[x[k]].current,(F=E[x[k]].current)==null||F.setRenderOrder(H),(N=E[x[k]].current)==null||N.sunset(!1)}M()},w=S=>{(S.key==="Delete"||S.key==="Backspace")&&C.dragging.body.length>0&&(C.dragging.body.map(B=>C.tileRefs.find(I=>{var F;return((F=I==null?void 0:I.ref)==null?void 0:F.getBody())===B}
28)).forEach(B=>{B&&!B.persist&&g(B.slot)}),C.dragging.selecting=!1,C.dragging.body=[])},p=S=>{i.items.length<1||(C.persistentCount===0&&b(),v(C.spawnCount%Oe,i.items[C.spawnCount%i.items.length]))},b=(S=!1)=>{if(i.items.length<1)return;d.current=0,C.spawnCount=0,C.selected=-1,C.persistentCount=0;const x=100;if(!S){C.empty=!1;for(let B=0;B<C.maxShown;B++)setTimeout(()=>{v(B,i.items[B])},B*x);lt.forEach((B,I)=>{setTimeout(()=>{y(I,B)},C.maxShown*x+I*x)})}S&&(C.empty=!0)},P=S=>{f.current=S};return Pe(S=>{t.current.elapsed=S-t.current.then;const x=1e3/t.current.fps;t.current.elapsed>x&&(O.Engine.update(C.engine,x),t.current.then=S-t.current.elapsed%x)}),R.useEffect(()=>{L<=700?(C.maxTileSize.width=Wt,C.maxTileSize.height=jt,C.arrangement=Ut,C.maxShown=Nt,C.canResize=!1,C.overlapBoundaryScale=Ht,C.canUseWidgets=!1,C.canSelect=!1):(C.maxTileSize.width=vt,C.maxTileSize.height=mt,C.arrangement=$e,C.maxShown=gt,C.canResize=!0,C.overlapBoundaryScale=ht,C.canUseWidgets=!0,C.canSelect=!0)},[L]),R.useEffect(()=>{m()},[i.spawnCount]),R.useEffect(()=>{o.current.find(x=>{var B;return C.dragging.body.includes((B=x==null?void 0:x.ref)==null?void 0:B.getBody())})||(i.selected>-1&&C.dragging.body.length<2?(u.current.unshift(i.selected),m()):i.selected===-1&&m())},[i.selected]),R.useEffect(()=>{i.items.length<1||i.spawning&&(p(),C.spawning=!1)},[i.spawning,i.items]),R.useEffect(()=>{var S,x,B;(S=n.current)==null||S.off(P),(x=n.current)==null||x.destroy(),i.mode==="scroller"&&(a.current=[],f.current=null,n.current=new tn,(B=n.current)==null||B.on(P))},[i.mode]),R.useEffect(()=>(b(),document.addEventListener("keydown",w),()=>{var S,x;document.removeEventListener("keydown",w),(S=n.current)==null||S.off(P),(x=n.current)==null||x.destroy()}),[i.items,i.maxShown,i.canSelect,i.canUseWidgets]),A.jsxs("div",{className:"absolute left-0 top-0 w-full h-full",children:[Ft,A.jsx("div",{className:"absolute left-0 top-0 w-full h-full flex items-center justify-center pointer-events-none",children:A.jsx("p",{className:se("type-title-xs-medium text-center opacity-0 transition-opacity duration-500",i.empty&&"opacity-100"),children:"This page intentionally left blank."})}),i.mode==="playground"&&A.jsx("div",{className:"absolute left-0 bottom-0 w-full h-full pointer-events-none flex items-start md:items-end z-[600]",children:A.jsxs("div",{className:"h-[calc(100svh-80px)] md:h-pageMin w-grid relative mx-auto flex items-end justify-center pb-4",children:[A.jsx(ot,{onClick:()=>{p(),r(!0)},title:"Inspire",icon:A.jsx(ft,{})}),A.jsx(ot,{onClick:()=>b(!0),title:"Refresh",icon:A.jsx(Lt,{}),className:se("w-0 overflow-hidden",s&&"!w-buttonLg ml-4 !overflow-visible transition-all duration-500")})]})}),A.jsx(an,{}),E.map((S,x)=>{var B;return i.persistentCount&&typeof((B=o.current[x])==null?void 0:B.slot)=="number"?A.jsxs(R.Suspense,{children:[A.jsx(h,{slot:o.current[x].slot}),A.jsx(st,{ref:S,url:o.current[x].url,index:o.current[x].index,slot:o.current[x].slot,renderOrder:o.current[x].renderOrder,width:o.current[x].width,height:o.current[x].height,isHTML:o.current[x].isHTML,children:o.current[x].content})]},x):null}),T.map((S,x)=>{var B;return i.spawnCount&&typeof((B=l.current[x])==null?void 0:B.slot)=="number"?A.jsxs(R.Suspense,{children:[A.jsx(c,{slot:l.current[x].slot}),A.jsx(st,{ref:S,url:l.current[x].url,index:l.current[x].index,slot:l.current[x].slot,renderOrder:l.current[x].renderOrder,width:l.current[x].width,height:l.current[x].height,isHTML:l.current[x].isHTML,children:l.current[x].content})]},x):null}),A.jsx(on,{})]})}function ct(L){var T,E;const D=R.useMemo(()=>Ot(L.dates.flatMap(u=>[u.startDate,u.endDate]).filter(u=>!!u)),[L.dates]);return L.mode==="stacked"?A.jsxs(et,{href:L.uri,className:se("flex flex-col gap-1 w-full",L.className),onMouseEnter:()=>{var u;return(u=L.onHover)==null?void 0:u.call(L,!0)},onMouseLeave:()=>{var u;return(u=L.onHover)==null?void 0:u.call(L,!1)},children:[A.jsx(tt.div,{variants:{active:{width:"100%"},default:{width:"65%"}},animate:L.hovering?"active":"default",initial:"default",children:A.jsx(dt,{flipId:L.id,children:A.jsx(nt,{...(T=L.hero)==null?void 0:T.image})})}),A.jsx(tt.div,{className:"pointer-events-none",variants:{active:{width:"150%"},default:{width:"65%"}},animate:L.hovering?"active":"default",initial:"default",children:A.jsxs("div",{className:"stack-y-0",children:[A.jsx("div",{className:"type-body-s-roman text-ellipsis whitespace-nowrap overflow-hidden antialiased",children:L.title}),A.jsx("div",{className:"type-body-s-serif text-ellipsis whitespace-nowrap overflow-hidden",children:D})]})})]}):A.jsxs(et,{href:L.uri,className:"flex flex-row gap-4 w-full bg-grey-light items-center pr-4 overflow-hidden rounded-l-[4px] rounded-r-[8px] active:bg-grey-mid/30",onMouseEnter:()=>{var u;return(u=L.onHover)==null?void 0:u.call(L,!0)},onMouseLeave:()=>{var u;return(u=L.onHover)==null?void 0:u.call(L,!1)},children:[A.jsx("div",{className:"flex-none",children:A.jsx(nt,{...(E=L.hero)==null?void 0:E.image,className:"h-[40px]"})}),A.jsxs("div",{className:"flex-1 stack-y-0 overflow-hidden",children:[A.jsx("div",{className:"type-body-s-roman text-ellipsis whitespace-nowrap overflow-hidden antialiased",children:L.title}),A.jsx("div",{className:"type-body-s-serif text-ellipsis whitespace-nowrap overflow-hidden",children:D})]})]})}function un(L){var i;const D=At();C.active=!0,C.mode="playground",C.contentFitRef.current=null,C.items=L.todaysTopAwards??[],C.events=((i=L.events)==null?void 0:i.nodes)??[],C.router=ye(D);const T=R.useRef(null);R.useEffect(()=>{const d=T.current,n=()=>{const a=window.innerWidth,t=d.offsetHeight;if(a<700){C.safezone.left=0,C.safezone.top=80,C.safezone.bottom=t+C.safezone.top-50,C.safezone.right=a;return}const s=d.getBoundingClientRect();
28C.safezone.left=s.left,C.safezone.top=s.top,C.safezone.bottom=s.bottom,C.safezone.right=s.right},f=new ResizeObserver(n);return n(),f.observe(d),()=>{f.disconnect()}},[]);const[E,u]=R.useState(-1),[e,l]=R.useState(!1);R.useEffect(()=>{if(!e){const d=setTimeout(()=>{u(-1)},300);return()=>clearTimeout(d)}},[e]);const o=R.useMemo(()=>{var d,n;return((n=(d=L.events)==null?void 0:d.nodes)==null?void 0:n.sort((f,a)=>{var r,c;let t=(r=f.eventInfo)!=null&&r.featured?"":f.dates[0].startDate,s=(c=a.eventInfo)!=null&&c.featured?"":a.dates[0].startDate;return(t==null?void 0:t.localeCompare(s??""))??0}).slice(0,4))??[]},[]);return A.jsx(kt,{children:A.jsxs("div",{children:[A.jsxs("div",{className:"h-[calc(100svh_-150px)] md:min-h-pageMin",children:[A.jsx("div",{className:"mt-0 w-full top-0 left-0 absolute h-[calc(100svh)] md:h-[100vh]",children:A.jsxs("div",{id:"background",className:"absolute inset-0 select-none *:select-none *:pointer-events-none z-[0] overflow-hidden","data-transition":"fade",children:[A.jsx(R.Suspense,{fallback:null,children:A.jsx(cn,{})}),A.jsx("div",{className:"absolute inset-0 top-headerHeight pointer-events-none",children:A.jsx("div",{className:"grid-auto h-full pt-5 pb-[80px] md:pt-5 md:pb-[100px]",children:A.jsx("div",{ref:T,className:se("col-span-12 md:col-span-10 md:col-start-3 h-full","")})})})]})}),A.jsx("div",{className:"h-pageMin relative pointer-events-none hidden md:grid-auto",children:A.jsx("div",{className:"col-span-2",children:o.length>0&&A.jsxs(A.Fragment,{children:[A.jsx("h3",{"data-transition":"fade",className:"type-title-xs-medium mt-4 mb-5",children:"What's on:"}),A.jsx("div",{"data-transition":"children/fade",className:"stack-y-3 pointer-events-auto relative",children:o.map((d,n)=>A.jsx(ct,{mode:"stacked",...d,hovering:E===n,onHover:f=>{f?(u(n),l(!0)):l(!1)}},d.uri))})]})})})]}),A.jsx("div",{className:"block md:hidden pb-8",children:o.length>0&&A.jsx("div",{"data-transition":"children/fade",className:"flex gap-4 overflow-auto snap-x snap-proximity hide-scrollbars scroll-pl-4 pl-4 pr-4 pointer-events-auto relative",children:o.map((d,n)=>A.jsx("div",{className:"w-[min(70vw,_300px)] flex-none snap-start",children:A.jsx(ct,{mode:"row",...d,hovering:E===n,onHover:f=>{f?(u(n),l(!0)):l(!1)}})},d.uri))})}),A.jsx("div",{className:"block md:hidden",children:A.jsx(It,{})})]})})}un.displayName="View(front-page)";export{un as default};
29//# sourceMappingURL=front-page-B19HU0C9.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.