0x1bb7…7c83

All memos sent from and to 0x1bb7…7c83.

!function(e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).earcut=e()}((function(){return function e(n,t,r){function x(u,f){if(!t[u]){if(!n[u]){var o="function"==typeof require&&require;if(!f&&o)return o(u,!0);if(i)return i(u,!0);throw(f=new Error("Cannot find module '"+u+"'")).code="MODULE_NOT_FOUND",f}o=t[u]={exports:{}},n[u][0].call(o.exports,(function(e){return x(n[u][1][e]||e)}),o,o.exports,e,n,t,r)}return t[u].exports}for(var i="function"==typeof require&&require,u=0;u<r.length;u++)x(r[u]);return x}({1:[function(e,n,t){"use strict";function r(e,n,t){t=t||2;var r,o,y,a,l,h=n&&n.length,d=h?n[0]*t:e.length,Z=x(e,0,d,t,!0),g=[];if(Z&&Z.next!==Z.prev){if(h&&(Z=function(e,n,t,r){var u,o,y,a=[];for(u=0,o=n.length;u<o;u++)(y=x(e,y=n[u]*r,u<o-1?n[u+1]*r:e.length,r,!1))===y.next&&(y.steiner=!0),a.push(function(e){for(var n=e,t=e;(n.x<t.x||n.x===t.x&&n.y<t.y)&&(t=n),(n=n.next)!==e;);return t}(y));for(a.sort(f),u=0;u<a.length;u++)t=function(e,n){var t=function(e,n){var t,r=n,x=e.x,i=e.y,u=-1/0;do{if(i<=r.y&&i>=r.next.y&&r.next.y!==r.y){var f=r.x+(i-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(f<=x&&u<f&&(u=f,t=r.x<r.next.x?r:r.next,f===x))return t}}while((r=r.next)!==n);if(!t)return null;var o,y=t,a=t.x,l=t.y,h=1/0;for(r=t;x>=r.x&&r.x>=a&&x!==r.x&&v(i<l?x:u,i,a,l,i<l?u:x,i,r.x,r.y)&&(o=Math.abs(i-r.y)/(x-r.x),s(r,e)&&(o<h||o===h&&(r.x>t.x||r.x===t.x&&function(e,n){return p(e.prev,e,n.prev)<0&&p(n.next,e,e.next)<0}(t,r)))&&(t=r,h=o)),(r=r.next)!==y;);return t}(e,n);return t?(i(n=c(t,e),n.next),i(t,t.next)):n}(a[u],t);return t}(e,n,Z,t)),e.length>80*t){for(var w=r=e[0],M=o=e[1],b=t;b<d;b+=t)(y=e[b])<w&&(w=y),(a=e[b+1])<M&&(M=a),r<y&&(r=y),o<a&&(o=a);l=0!==(l=Math.max(r-w,o-M))?32767/l:0}u(Z,g,t,w,M,l,0)}return g}function x(e,n,t,r,x){var i,u;if(x===0<w(e,n,t,r))for(i=n;i<t;i+=r)u=d(i,e[i],e[i+1],u);else for(i=t-r;n<=i;i-=r)u=d(i,e[i],e[i+1],u);return u&&y(u,u.next)&&(Z(u),u=u.next),u}function i(e,n){if(!e)return e;n=n||e;var t,r=e;do{if(t=!1,r.steiner||!y(r,r.next)&&0!==p(r.prev,r,r.next))r=r.next;else{if(Z(r),(r=n=r.prev)===r.next)break;t=!0}}while(t||r!==n);return n}function u(e,n,t,r,x,f,l){if(e){if(!l&&f){for(var h=e,d=r,g=x,w=f,M=h;0===M.z&&(M.z=o(M.x,M.y,d,g,w)),M.prevZ=M.prev,M.nextZ=M.next,(M=M.next)!==h;);M.prevZ.nextZ=null,M.prevZ=null;var b,m,z,q,O,k,D,E,N=M,U=1;do{for(m=N,O=N=null,k=0;m;){for(k++,z=m,b=D=0;b<U&&(D++,z=z.nextZ);b++);for(E=U;0<D||0<E&&z;)0!==D&&(0===E||!z||m.z<=z.z)?(m=(q=m).nextZ,D--):(z=(q=z).nextZ,E--),O?O.nextZ=q:N=q,q.prevZ=O,O=q;m=z}}while(O.nextZ=null,U*=2,1<k)}for(var _,j,C=e;e.prev!==e.next;)if(_=e.prev,j=e.next,f?function(e,n,t,r){var x=e.prev,i=e,u=e.next;if(!(0<=p(x,i,u))){for(var f=x.x,y=i.x,a=u.x,l=x.y,h=i.y,s=u.y,c=f<y?f<a?f:a:y<a?y:a,d=l<h?l<s?l:s:h<s?h:s,Z=y<f?a<f?f:a:a<y?y:a,g=h<l?s<l?l:s:s<h?h:s,w=o(c,d,n,t,r),M=o(Z,g,n,t,r),b=e.prevZ,m=e.nextZ;b&&b.z>=w&&m&&m.z<=M;){if(b.x>=c&&b.x<=Z&&b.y>=d&&b.y<=g&&b!==x&&b!==u&&v(f,l,y,h,a,s,b.x,b.y)&&0<=p(b.prev,b,b.next))return;if(b=b.prevZ,m.x>=c&&m.x<=Z&&m.y>=d&&m.y<=g&&m!==x&&m!==u&&v(f,l,y,h,a,s,m.x,m.y)&&0<=p(m.prev,m,m.next))return;m=m.nextZ}for(;b&&b.z>=w;){if(b.x>=c&&b.x<=Z&&b.y>=d&&b.y<=g&&b!==x&&b!==u&&v(f,l,y,h,a,s,b.x,b.y)&&0<=p(b.prev,b,b.next))return;b=b.prevZ}for(;m&&m.z<=M;){if(m.x>=c&&m.x<=Z&&m.y>=d&&m.y<=g&&m!==x&&m!==u&&v(f,l,y,h,a,s,m.x,m.y)&&0<=p(m.prev,m,m.next))return;m=m.nextZ}return 1}}(e,r,x,f):function(e){var n=e.prev,t=e;if(!(0<=p(n,t,e=e.next))){for(var r=n.x,x=t.x,i=e.x,u=n.y,f=t.y,o=e.y,y=r<x?r<i?r:i:x<i?x:i,a=u<f?u<o?u:o:f<o?f:o,l=x<r?i<r?r:i:i<x?x:i,h=f<u?o<u?u:o:o<f?f:o,s=e.next;s!==n;){if(s.x>=y&&s.x<=l&&s.y>=a&&s.y<=h&&v(r,u,x,f,i,o,s.x,s.y)&&0<=p(s.prev,s,s.next))return;s=s.next}return 1}}(e))n.push(_.i/t|0),n.push(e.i/t|0),n.push(j.i/t|0),Z(e),e=j.next,C=j.next;else if((e=j)===C){l?1===l?u(e=function(e,n,t){var r=e;do{var x=r.prev,u=r.next.next}while(!y(x,u)&&a(x,r,r.next,u)&&s(x,u)&&s(u,x)&&(n.push(x.i/t|0),n.push(r.i/t|0),n.push(u.i/t|0),Z(r),Z(r.next),r=e=u),(r=r.next)!==e);return i(r)}(i(e),n,t),n,t,r,x,f,2):2===l&&function(e,n,t,r,x,f){var o=e;do{for(var v,l=o.next.next;l!==o.prev;){if(o.i!==l.i&&function(e,n){return e.next.i!==n.i&&e.prev.i!==n.i&&!function(e,n){var t=e;do{if(t.i!==e.i&&t.next.i!==e.i&&t.i!==n.i&&t.next.i!==n.i&&a(t,t.next,e,n))return 1}while((t=t.next)!==e)}(e,n)&&(s(e,n)&&s(n,e)&&function(e,n){for(var t=e,r=!1,x=(e.x+n.x)/2,i=(e.y+n.y)/2;t.y>i!=t.next.y>i&&t.next.y!==t.y&&x<(t.next.x-t.x)*(i-t.y)/(t.next.y-t.y)+t.x&&(r=!r),(t=t.next)!==e;);return r}(e,n)&&(p(e.prev,e,n.prev)||p(e,n.prev,n))||y(e,n)&&0<p(e.prev,e,e.next)&&0<p(n.prev,n,n.next))}(o,l))return v=c(o,l),o=i(o,o.next),v=i(v,v.next),u(o,n,t,r,x,f,0),u(v,n,t,r,x,f,0);l=l.next}}while((o=o.next)!==e)}(e,n,t,r,x,f):u(i(e),n,t,r,x,f,1);break}}}function f(e,n){return e.x-n.x}function o(e,n,t,r,x){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-t)*x|0)|e<<8))|e<<4))|e<<2))|e<<1))|(n=1431655765&((n=858993459&((n=252645135&((n=16711935&((n=(n-r)*x|0)|n<<8))|n<<4))|n<<2))|n<<1))<<1}function v(e,n,t,r,x,i,u,f){return(e-u)*(i-f)<=(x-u)*(n-f)&&(t-u)*(n-f)<=(e-u)*(r-f)&&(x-u)*(r-f)<=(t-u)*(i-f)}function p(e,n,t){return(n.y-e.y)*(t.x-n.x)-(n.x-e.x)*(t.y-n.y)}function y(e,n){return e.x===n.x&&e.y===n.y}function a(e,n,t,r){var x=h(p(e,n,t)),i=h(p(e,n,r)),u=h(p(t,r,e)),f=h(p(t,r,n));return x!==i&&u!==f||0===x&&l(e,t,n)||0===i&&l(e,r,n)||0===u&&l(t,e,r)||!(0!==f||!l(t,n,r))}function l(e,n,t){return n.x<=Math.max(e.x,t.x)&&n.x>=Math.min(e.x,t.x)&&n.y<=Math.max(e.y,t.y)&&n.y>=Math.min(e.y,t.y)}function h(e){return 0<e?1:e<0?-1:0}function s(e,n){return p(e.prev,e,e.next)<0?0<=p(e,n,e.next)&&0<=p(e,e.prev,n):p(e,n,e.prev)<0||p(e,e.next,n)<0}function c(e,n){var t=new g(e.i,e.x,e.y),r=new g(n.i,n.x,n.y),x=e.next,i=n.prev;return(e.next=n).prev=e,(t.next=x).prev=t,(r.next=t).prev=r,(i.next=r).prev=i,r}function d(e,n,t,r){return e=new g(e,n,t),r?(e.next=r.next,(e.prev=r).next.prev=e,r.next=e):(e.prev=e).next=e,e}function Z(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function g(e,n,t){this.i=e,this.x=n,this.y=t,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function w(e,n,t,r){for(var x=0,i=n,u=t-r;i<t;i+=r)x+=(e[u]-e[i])*(e[i+1]+e[u+1]),u=i;return x}n.exports=r,(n.exports.default=r).deviation=function(e,n,t,r){var x=n&&n.length,i=x?n[0]*t:e.length,u=Math.abs(w(e,0,i,t));if(x)for(var f=0,o=n.length;f<o;f++){var v=n[f]*t,p=f<o-1?n[f+1]*t:e.length;u-=Math.abs(w(e,v,p,t))}var y=0;for(f=0;f<r.length;f+=3){var a=r[f]*t,l=r[f+1]*t,h=r[f+2]*t;y+=Math.abs((e[a]-e[h])*(e[1+l]-e[1+a])-(e[a]-e[l])*(e[1+h]-e[1+a]))}return 0===u&&0===y?0:Math.abs((y-u)/u)},r.flatten=function(e){for(var n=e[0][0].length,t={vertices:[],holes:[],dimensions:n},r=0,x=0;x<e.length;x++){for(var i=0;i<e[x].length;i++)for(var u=0;u<n;u++)t.vertices.push(e[x][i][u]);0<x&&(r+=e[x-1].length,t.holes.push(r))}return t}},{}]},{},[1])(1)}));
!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i((t="undefined"!=typeof globalThis?globalThis:t||self).d3=t.d3||{})}(this,(function(t){"use strict";const i=134217729;function e(t,i,e,n,s){let l,h,r,o,a=i[0],c=n[0],u=0,f=0;c>a==c>-a?(l=a,a=i[++u]):(l=c,c=n[++f]);let _=0;if(u<t&&f<e)for(c>a==c>-a?(h=a+l,r=l-(h-a),a=i[++u]):(h=c+l,r=l-(h-c),c=n[++f]),l=h,0!==r&&(s[_++]=r);u<t&&f<e;)c>a==c>-a?(h=l+a,o=h-l,r=l-(h-o)+(a-o),a=i[++u]):(h=l+c,o=h-l,r=l-(h-o)+(c-o),c=n[++f]),l=h,0!==r&&(s[_++]=r);for(;u<t;)h=l+a,o=h-l,r=l-(h-o)+(a-o),a=i[++u],l=h,0!==r&&(s[_++]=r);for(;f<e;)h=l+c,o=h-l,r=l-(h-o)+(c-o),c=n[++f],l=h,0!==r&&(s[_++]=r);return 0===l&&0!==_||(s[_++]=l),_}function n(t){return new Float64Array(t)}const s=n(4),l=n(8),h=n(12),r=n(16),o=n(4);function a(t,n,a,c,u,f){const _=(n-f)*(a-u),d=(t-u)*(c-f),g=_-d;if(0===_||0===d||_>0!=d>0)return g;const y=Math.abs(_+d);return Math.abs(g)>=33306690738754716e-32*y?g:-function(t,n,a,c,u,f,_){let d,g,y,m,x,p,w,v,b,T,M,A,k,$,P,S,I,z;const F=t-u,U=a-u,K=n-f,L=c-f;$=F*L,p=i*F,w=p-(p-F),v=F-w,p=i*L,b=p-(p-L),T=L-b,P=v*T-($-w*b-v*b-w*T),S=K*U,p=i*K,w=p-(p-K),v=K-w,p=i*U,b=p-(p-U),T=U-b,I=v*T-(S-w*b-v*b-w*T),M=P-I,x=P-M,s[0]=P-(M+x)+(x-I),A=$+M,x=A-$,k=$-(A-x)+(M-x),M=k-S,x=k-M,s[1]=k-(M+x)+(x-S),z=A+M,x=z-A,s[2]=A-(z-x)+(M-x),s[3]=z;let j=function(t,i){let e=i[0];for(let t=1;t<4;t++)e+=i[t];return e}(0,s),H=22204460492503146e-32*_;if(j>=H||-j>=H)return j;if(x=t-F,d=t-(F+x)+(x-u),x=a-U,y=a-(U+x)+(x-u),x=n-K,g=n-(K+x)+(x-f),x=c-L,m=c-(L+x)+(x-f),0===d&&0===g&&0===y&&0===m)return j;if(H=11093356479670487e-47*_+33306690738754706e-32*Math.abs(j),j+=F*m+L*d-(K*y+U*g),j>=H||-j>=H)return j;$=d*L,p=i*d,w=p-(p-d),v=d-w,p=i*L,b=p-(p-L),T=L-b,P=v*T-($-w*b-v*b-w*T),S=g*U,p=i*g,w=p-(p-g),v=g-w,p=i*U,b=p-(p-U),T=U-b,I=v*T-(S-w*b-v*b-w*T),M=P-I,x=P-M,o[0]=P-(M+x)+(x-I),A=$+M,x=A-$,k=$-(A-x)+(M-x),M=k-S,x=k-M,o[1]=k-(M+x)+(x-S),z=A+M,x=z-A,o[2]=A-(z-x)+(M-x),o[3]=z;const E=e(4,s,4,o,l);$=F*m,p=i*F,w=p-(p-F),v=F-w,p=i*m,b=p-(p-m),T=m-b,P=v*T-($-w*b-v*b-w*T),S=K*y,p=i*K,w=p-(p-K),v=K-w,p=i*y,b=p-(p-y),T=y-b,I=v*T-(S-w*b-v*b-w*T),M=P-I,x=P-M,o[0]=P-(M+x)+(x-I),A=$+M,x=A-$,k=$-(A-x)+(M-x),M=k-S,x=k-M,o[1]=k-(M+x)+(x-S),z=A+M,x=z-A,o[2]=A-(z-x)+(M-x),o[3]=z;const C=e(E,l,4,o,h);$=d*m,p=i*d,w=p-(p-d),v=d-w,p=i*m,b=p-(p-m),T=m-b,P=v*T-($-w*b-v*b-w*T),S=g*y,p=i*g,w=p-(p-g),v=g-w,p=i*y,b=p-(p-y),T=y-b,I=v*T-(S-w*b-v*b-w*T),M=P-I,x=P-M,o[0]=P-(M+x)+(x-I),A=$+M,x=A-$,k=$-(A-x)+(M-x),M=k-S,x=k-M,o[1]=k-(M+x)+(x-S),z=A+M,x=z-A,o[2]=A-(z-x)+(M-x),o[3]=z;const N=e(C,h,4,o,r);return r[N-1]}(t,n,a,c,u,f,y)}const c=Math.pow(2,-52),u=new Uint32Array(512);class f{static from(t,i=x,e=p){const n=t.length,s=new Float64Array(2*n);for(let l=0;l<n;l++){const n=t[l];s[2*l]=i(n),s[2*l+1]=e(n)}return new f(s)}constructor(t){const i=t.length>>1;if(i>0&&"number"!=typeof t[0])throw new Error("Expected coords to contain numbers.");this.coords=t;const e=Math.max(2*i-5,0);this._triangles=new Uint32Array(3*e),this._halfedges=new Int32Array(3*e),this._hashSize=Math.ceil(Math.sqrt(i)),this._hullPrev=new Uint32Array(i),this._hullNext=new Uint32Array(i),this._hullTri=new Uint32Array(i),this._hullHash=new Int32Array(this._hashSize).fill(-1),this._ids=new Uint32Array(i),this._dists=new Float64Array(i),this.update()}update(){const{coords:t,_hullPrev:i,_hullNext:e,_hullTri:n,_hullHash:s}=this,l=t.length>>1;let h=1/0,r=1/0,o=-1/0,u=-1/0;for(let i=0;i<l;i++){const e=t[2*i],n=t[2*i+1];e<h&&(h=e),n<r&&(r=n),e>o&&(o=e),n>u&&(u=n),this._ids[i]=i}const f=(h+o)/2,d=(r+u)/2;let m,x,p,w=1/0;for(let i=0;i<l;i++){const e=_(f,d,t[2*i],t[2*i+1]);e<w&&(m=i,w=e)}const v=t[2*m],b=t[2*m+1];w=1/0;for(let i=0;i<l;i++){if(i===m)continue;const e=_(v,b,t[2*i],t[2*i+1]);e<w&&e>0&&(x=i,w=e)}let T=t[2*x],M=t[2*x+1],A=1/0;for(let i=0;i<l;i++){if(i===m||i===x)continue;const e=g(v,b,T,M,t[2*i],t[2*i+1]);e<A&&(p=i,A=e)}let k=t[2*p],$=t[2*p+1];if(A===1/0){for(let i=0;i<l;i++)this._dists[i]=t[2*i]-t[0]||t[2*i+1]-t[1];y(this._ids,this._dists,0,l-1);const i=new Uint32Array(l);let e=0;for(let t=0,n=-1/0;t<l;t++){const s=this._ids[t];this._dists[s]>n&&(i[e++]=s,n=this._dists[s])}return this.hull=i.subarray(0,e),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(a(v,b,T,M,k,$)<0){const t=x,i=T,e=M;x=p,T=k,M=$,p=t,k=i,$=e}const P=function(t,i,e,n,s,l){const h=e-t,r=n-i,o=s-t,a=l-i,c=h*h+r*r,u=o*o+a*a,f=.5/(h*a-r*o);return{x:t+(a*c-r*u)*f,y:i+(h*u-o*c)*f}}(v,b,T,M,k,$);this._cx=P.x,this._cy=P.y;for(let i=0;i<l;i++)this._dists[i]=_(t[2*i],t[2*i+1],P.x,P.y);y(this._ids,this._dists,0,l-1),this._hullStart=m;let S=3;e[m]=i[p]=x,e[x]=i[m]=p,e[p]=i[x]=m,n[m]=0,n[x]=1,n[p]=2,s.fill(-1),s[this._hashKey(v,b)]=m,s[this._hashKey(T,M)]=x,s[this._hashKey(k,$)]=p,this.trianglesLen=0,this._addTriangle(m,x,p,-1,-1,-1);for(let l,h,r=0;r<this._ids.length;r++){const o=this._ids[r],u=t[2*o],f=t[2*o+1];if(r>0&&Math.abs(u-l)<=c&&Math.abs(f-h)<=c)continue;if(l=u,h=f,o===m||o===x||o===p)continue;let _=0;for(let t=0,i=this._hashKey(u,f);t<this._hashSize&&(_=s[(i+t)%this._hashSize],-1===_||_===e[_]);t++);_=i[_];let d,g=_;for(;d=e[g],a(u,f,t[2*g],t[2*g+1],t[2*d],t[2*d+1])>=0;)if(g=d,g===_){g=-1;break}if(-1===g)continue;let y=this._addTriangle(g,o,e[g],-1,-1,n[g]);n[o]=this._legalize(y+2),n[g]=y,S++;let w=e[g];for(;d=e[w],a(u,f,t[2*w],t[2*w+1],t[2*d],t[2*d+1])<0;)y=this._addTriangle(w,o,d,n[o],-1,n[w]),n[o]=this._legalize(y+2),e[w]=w,S--,w=d;if(g===_)for(;d=i[g],a(u,f,t[2*d],t[2*d+1],t[2*g],t[2*g+1])<0;)y=this._addTriangle(d,o,g,-1,n[g],n[d]),this._legalize(y+2),n[d]=y,e[g]=g,S--,g=d;this._hullStart=i[o]=g,e[g]=i[w]=o,e[o]=w,s[this._hashKey(u,f)]=o,s[this._hashKey(t[2*g],t[2*g+1])]=g}this.hull=new Uint32Array(S);for(let t=0,i=this._hullStart;t<S;t++)this.hull[t]=i,i=e[i];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(t,i){return Math.floor(function(t,i){const e=t/(Math.abs(t)+Math.abs(i));return(i>0?3-e:1+e)/4}(t-this._cx,i-this._cy)*this._hashSize)%this._hashSize}_legalize(t){const{_triangles:i,_halfedges:e,coords:n}=this;let s=0,l=0;for(;;){const h=e[t],r=t-t%3;if(l=r+(t+2)%3,-1===h){if(0===s)break;t=u[--s];continue}const o=h-h%3,a=r+(t+1)%3,c=o+(h+2)%3,f=i[l],_=i[t],g=i[a],y=i[c];if(d(n[2*f],n[2*f+1],n[2*_],n[2*_+1],n[2*g],n[2*g+1],n[2*y],n[2*y+1])){i[t]=y,i[h]=f;const n=e[c];if(-1===n){let i=this._hullStart;do{if(this._hullTri[i]===c){this._hullTri[i]=t;break}i=this._hullPrev[i]}while(i!==this._hullStart)}this._link(t,n),this._link(h,e[l]),this._link(l,c);const r=o+(h+1)%3;s<u.length&&(u[s++]=r)}else{if(0===s)break;t=u[--s]}}return l}_link(t,i){this._halfedges[t]=i,-1!==i&&(this._halfedges[i]=t)}_addTriangle(t,i,e,n,s,l){const h=this.trianglesLen;return this._triangles[h]=t,this._triangles[h+1]=i,this._triangles[h+2]=e,this._link(h,n),this._link(h+1,s),this._link(h+2,l),this.trianglesLen+=3,h}}function _(t,i,e,n){const s=t-e,l=i-n;return s*s+l*l}function d(t,i,e,n,s,l,h,r){const o=t-h,a=i-r,c=e-h,u=n-r,f=s-h,_=l-r,d=c*c+u*u,g=f*f+_*_;return o*(u*g-d*_)-a*(c*g-d*f)+(o*o+a*a)*(c*_-u*f)<0}function g(t,i,e,n,s,l){const h=e-t,r=n-i,o=s-t,a=l-i,c=h*h+r*r,u=o*o+a*a,f=.5/(h*a-r*o),_=(a*c-r*u)*f,d=(h*u-o*c)*f;return _*_+d*d}function y(t,i,e,n){if(n-e<=20)for(let s=e+1;s<=n;s++){const n=t[s],l=i[n];let h=s-1;for(;h>=e&&i[t[h]]>l;)t[h+1]=t[h--];t[h+1]=n}else{let s=e+1,l=n;m(t,e+n>>1,s),i[t[e]]>i[t[n]]&&m(t,e,n),i[t[s]]>i[t[n]]&&m(t,s,n),i[t[e]]>i[t[s]]&&m(t,e,s);const h=t[s],r=i[h];for(;;){do{s++}while(i[t[s]]<r);do{l--}while(i[t[l]]>r);if(l<s)break;m(t,s,l)}t[e+1]=t[l],t[l]=h,n-s+1>=l-e?(y(t,i,s,n),y(t,i,e,l-1)):(y(t,i,e,l-1),y(t,i,s,n))}}function m(t,i,e){const n=t[i];t[i]=t[e],t[e]=n}function x(t){return t[0]}function p(t){return t[1]}const w=1e-6;class v{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(t,i){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+i}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(t,i){this._+=`L${this._x1=+t},${this._y1=+i}`}arc(t,i,e){const n=(t=+t)+(e=+e),s=i=+i;if(e<0)throw new Error("negative radius");null===this._x1?this._+=`M${n},${s}`:(Math.abs(this._x1-n)>w||Math.abs(this._y1-s)>w)&&(this._+="L"+n+","+s),e&&(this._+=`A${e},${e},0,1,1,${t-e},${i}A${e},${e},0,1,1,${this._x1=n},${this._y1=s}`)}rect(t,i,e,n){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+i}h${+e}v${+n}h${-e}Z`}value(){return this._||null}}class b{constructor(){this._=[]}moveTo(t,i){this._.push([t,i])}closePath(){this._.push(this._[0].slice())}lineTo(t,i){this._.push([t,i])}value(){return this._.length?this._:null}}class T{constructor(t,[i,e,n,s]=[0,0,960,500]){if(!((n=+n)>=(i=+i)&&(s=+s)>=(e=+e)))throw new Error("invalid bounds");this.delaunay=t,this._circumcenters=new Float64Array(2*t.points.length),this.vectors=new Float64Array(2*t.points.length),this.xmax=n,this.xmin=i,this.ymax=s,this.ymin=e,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:t,hull:i,triangles:e},vectors:n}=this;let s,l;const h=this.circumcenters=this._circumcenters.subarray(0,e.length/3*2);for(let n,r,o=0,a=0,c=e.length;o<c;o+=3,a+=2){const c=2*e[o],u=2*e[o+1],f=2*e[o+2],_=t[c],d=t[c+1],g=t[u],y=t[u+1],m=t[f],x=t[f+1],p=g-_,w=y-d,v=m-_,b=x-d,T=2*(p*b-w*v);if(Math.abs(T)<1e-9){if(void 0===s){s=l=0;for(const e of i)s+=t[2*e],l+=t[2*e+1];s/=i.length,l/=i.length}const e=1e9*Math.sign((s-_)*b-(l-d)*v);n=(_+m)/2-e*b,r=(d+x)/2+e*v}else{const t=1/T,i=p*p+w*w,e=v*v+b*b;n=_+(b*i-w*e)*t,r=d+(p*e-v*i)*t}h[a]=n,h[a+1]=r}let r,o,a,c=i[i.length-1],u=4*c,f=t[2*c],_=t[2*c+1];n.fill(0);for(let e=0;e<i.length;++e)c=i[e],r=u,o=f,a=_,u=4*c,f=t[2*c],_=t[2*c+1],n[r+2]=n[u]=a-_,n[r+3]=n[u+1]=f-o}render(t){const i=null==t?t=new v:void 0,{delaunay:{halfedges:e,inedges:n,hull:s},circumcenters:l,vectors:h}=this;if(s.length<=1)return null;for(let i=0,n=e.length;i<n;++i){const n=e[i];if(n<i)continue;const s=2*Math.floor(i/3),h=2*Math.floor(n/3),r=l[s],o=l[s+1],a=l[h],c=l[h+1];this._renderSegment(r,o,a,c,t)}let r,o=s[s.length-1];for(let i=0;i<s.length;++i){r=o,o=s[i];const e=2*Math.floor(n[o]/3),a=l[e],c=l[e+1],u=4*r,f=this._project(a,c,h[u+2],h[u+3]);f&&this._renderSegment(a,c,f[0],f[1],t)}return i&&i.value()}renderBounds(t){const i=null==t?t=new v:void 0;return t.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),i&&i.value()}renderCell(t,i){const e=null==i?i=new v:void 0,n=this._clip(t);if(null===n||!n.length)return;i.moveTo(n[0],n[1]);let s=n.length;for(;n[0]===n[s-2]&&n[1]===n[s-1]&&s>1;)s-=2;for(let t=2;t<s;t+=2)n[t]===n[t-2]&&n[t+1]===n[t-1]||i.lineTo(n[t],n[t+1]);return i.closePath(),e&&e.value()}*cellPolygons(){const{delaunay:{points:t}}=this;for(let i=0,e=t.length/2;i<e;++i){const t=this.cellPolygon(i);t&&(t.index=i,yield t)}}cellPolygon(t){const i=new b;return this.renderCell(t,i),i.value()}_renderSegment(t,i,e,n,s){let l;const h=this._regioncode(t,i),r=this._regioncode(e,n);0===h&&0===r?(s.moveTo(t,i),s.lineTo(e,n)):(l=this._clipSegment(t,i,e,n,h,r))&&(s.moveTo(l[0],l[1]),s.lineTo(l[2],l[3]))}contains(t,i,e){return(i=+i)==i&&(e=+e)==e&&this.delaunay._step(t,i,e)===t}*neighbors(t){const i=this._clip(t);if(i)for(const e of this.delaunay.neighbors(t)){const t=this._clip(e);if(t)t:for(let n=0,s=i.length;n<s;n+=2)for(let l=0,h=t.length;l<h;l+=2)if(i[n]===t[l]&&i[n+1]===t[l+1]&&i[(n+2)%s]===t[(l+h-2)%h]&&i[(n+3)%s]===t[(l+h-1)%h]){yield e;break t}}}_cell(t){const{circumcenters:i,delaunay:{inedges:e,halfedges:n,triangles:s}}=this,l=e[t];if(-1===l)return null;const h=[];let r=l;do{const e=Math.floor(r/3);if(h.push(i[2*e],i[2*e+1]),r=r%3==2?r-2:r+1,s[r]!==t)break;r=n[r]}while(r!==l&&-1!==r);return h}_clip(t){if(0===t&&1===this.delaunay.hull.length)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];const i=this._cell(t);if(null===i)return null;const{vectors:e}=this,n=4*t;return this._simplify(e[n]||e[n+1]?this._clipInfinite(t,i,e[n],e[n+1],e[n+2],e[n+3]):this._clipFinite(t,i))}_clipFinite(t,i){const e=i.length;let n,s,l,h,r=null,o=i[e-2],a=i[e-1],c=this._regioncode(o,a),u=0;for(let f=0;f<e;f+=2)if(n=o,s=a,o=i[f],a=i[f+1],l=c,c=this._regioncode(o,a),0===l&&0===c)h=u,u=0,r?r.push(o,a):r=[o,a];else{let i,e,f,_,d;if(0===l){if(null===(i=this._clipSegment(n,s,o,a,l,c)))continue;[e,f,_,d]=i}else{if(null===(i=this._clipSegment(o,a,n,s,c,l)))continue;[_,d,e,f]=i,h=u,u=this._edgecode(e,f),h&&u&&this._edge(t,h,u,r,r.length),r?r.push(e,f):r=[e,f]}h=u,u=this._edgecode(_,d),h&&u&&this._edge(t,h,u,r,r.length),r?r.push(_,d):r=[_,d]}if(r)h=u,u=this._edgecode(r[0],r[1]),h&&u&&this._edge(t,h,u,r,r.length);else if(this.contains(t,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return r}_clipSegment(t,i,e,n,s,l){const h=s<l;for(h&&([t,i,e,n,s,l]=[e,n,t,i,l,s]);;){if(0===s&&0===l)return h?[e,n,t,i]:[t,i,e,n];if(s&l)return null;let r,o,a=s||l;8&a?(r=t+(e-t)*(this.ymax-i)/(n-i),o=this.ymax):4&a?(r=t+(e-t)*(this.ymin-i)/(n-i),o=this.ymin):2&a?(o=i+(n-i)*(this.xmax-t)/(e-t),r=this.xmax):(o=i+(n-i)*(this.xmin-t)/(e-t),r=this.xmin),s?(t=r,i=o,s=this._regioncode(t,i)):(e=r,n=o,l=this._regioncode(e,n))}}_clipInfinite(t,i,e,n,s,l){let h,r=Array.from(i);if((h=this._project(r[0],r[1],e,n))&&r.unshift(h[0],h[1]),(h=this._project(r[r.length-2],r[r.length-1],s,l))&&r.push(h[0],h[1]),r=this._clipFinite(t,r))for(let i,e=0,n=r.length,s=this._edgecode(r[n-2],r[n-1]);e<n;e+=2)i=s,s=this._edgecode(r[e],r[e+1]),i&&s&&(e=this._edge(t,i,s,r,e),n=r.length);else this.contains(t,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(r=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return r}_edge(t,i,e,n,s){for(;i!==e;){let e,l;switch(i){case 5:i=4;continue;case 4:i=6,e=this.xmax,l=this.ymin;break;case 6:i=2;continue;case 2:i=10,e=this.xmax,l=this.ymax;break;case 10:i=8;continue;case 8:i=9,e=this.xmin,l=this.ymax;break;case 9:i=1;continue;case 1:i=5,e=this.xmin,l=this.ymin}n[s]===e&&n[s+1]===l||!this.contains(t,e,l)||(n.splice(s,0,e,l),s+=2)}return s}_project(t,i,e,n){let s,l,h,r=1/0;if(n<0){if(i<=this.ymin)return null;(s=(this.ymin-i)/n)<r&&(h=this.ymin,l=t+(r=s)*e)}else if(n>0){if(i>=this.ymax)return null;(s=(this.ymax-i)/n)<r&&(h=this.ymax,l=t+(r=s)*e)}if(e>0){if(t>=this.xmax)return null;(s=(this.xmax-t)/e)<r&&(l=this.xmax,h=i+(r=s)*n)}else if(e<0){if(t<=this.xmin)return null;(s=(this.xmin-t)/e)<r&&(l=this.xmin,h=i+(r=s)*n)}return[l,h]}_edgecode(t,i){return(t===this.xmin?1:t===this.xmax?2:0)|(i===this.ymin?4:i===this.ymax?8:0)}_regioncode(t,i){return(t<this.xmin?1:t>this.xmax?2:0)|(i<this.ymin?4:i>this.ymax?8:0)}_simplify(t){if(t&&t.length>4){for(let i=0;i<t.length;i+=2){const e=(i+2)%t.length,n=(i+4)%t.length;(t[i]===t[e]&&t[e]===t[n]||t[i+1]===t[e+1]&&t[e+1]===t[n+1])&&(t.splice(e,2),i-=2)}t.length||(t=null)}return t}}const M=2*Math.PI,A=Math.pow;function k(t){return t[0]}function $(t){return t[1]}function P(t,i,e){return[t+Math.sin(t+i)*e,i+Math.cos(t-i)*e]}class S{static from(t,i=k,e=$,n){return new S("length"in t?function(t,i,e,n){const s=t.length,l=new Float64Array(2*s);for(let h=0;h<s;++h){const s=t[h];l[2*h]=i.call(n,s,h,t),l[2*h+1]=e.call(n,s,h,t)}return l}(t,i,e,n):Float64Array.from(function*(t,i,e,n){let s=0;for(const l of t)yield i.call(n,l,s,t),yield e.call(n,l,s,t),++s}(t,i,e,n)))}constructor(t){this._delaunator=new f(t),this.inedges=new Int32Array(t.length/2),this._hullIndex=new Int32Array(t.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const t=this._delaunator,i=this.points;if(t.hull&&t.hull.length>2&&function(t){const{triangles:i,coords:e}=t;for(let t=0;t<i.length;t+=3){const n=2*i[t],s=2*i[t+1],l=2*i[t+2];if((e[l]-e[n])*(e[s+1]-e[n+1])-(e[s]-e[n])*(e[l+1]-e[n+1])>1e-10)return!1}return!0}(t)){this.collinear=Int32Array.from({length:i.length/2},((t,i)=>i)).sort(((t,e)=>i[2*t]-i[2*e]||i[2*t+1]-i[2*e+1]));const t=this.collinear[0],e=this.collinear[this.collinear.length-1],n=[i[2*t],i[2*t+1],i[2*e],i[2*e+1]],s=1e-8*Math.hypot(n[3]-n[1],n[2]-n[0]);for(let t=0,e=i.length/2;t<e;++t){const e=P(i[2*t],i[2*t+1],s);i[2*t]=e[0],i[2*t+1]=e[1]}this._delaunator=new f(i)}else delete this.collinear;const e=this.halfedges=this._delaunator.halfedges,n=this.hull=this._delaunator.hull,s=this.triangles=this._delaunator.triangles,l=this.inedges.fill(-1),h=this._hullIndex.fill(-1);for(let t=0,i=e.length;t<i;++t){const i=s[t%3==2?t-2:t+1];-1!==e[t]&&-1!==l[i]||(l[i]=t)}for(let t=0,i=n.length;t<i;++t)h[n[t]]=t;n.length<=2&&n.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=n[0],l[n[0]]=1,2===n.length&&(l[n[1]]=0,this.triangles[1]=n[1],this.triangles[2]=n[1]))}voronoi(t){return new T(this,t)}*neighbors(t){const{inedges:i,hull:e,_hullIndex:n,halfedges:s,triangles:l,collinear:h}=this;if(h){const i=h.indexOf(t);return i>0&&(yield h[i-1]),void(i<h.length-1&&(yield h[i+1]))}const r=i[t];if(-1===r)return;let o=r,a=-1;do{if(yield a=l[o],o=o%3==2?o-2:o+1,l[o]!==t)return;if(o=s[o],-1===o){const i=e[(n[t]+1)%e.length];return void(i!==a&&(yield i))}}while(o!==r)}find(t,i,e=0){if((t=+t)!=t||(i=+i)!=i)return-1;const n=e;let s;for(;(s=this._step(e,t,i))>=0&&s!==e&&s!==n;)e=s;return s}_step(t,i,e){const{inedges:n,hull:s,_hullIndex:l,halfedges:h,triangles:r,points:o}=this;if(-1===n[t]||!o.length)return(t+1)%(o.length>>1);let a=t,c=A(i-o[2*t],2)+A(e-o[2*t+1],2);const u=n[t];let f=u;do{let n=r[f];const u=A(i-o[2*n],2)+A(e-o[2*n+1],2);if(u<c&&(c=u,a=n),f=f%3==2?f-2:f+1,r[f]!==t)break;if(f=h[f],-1===f){if(f=s[(l[t]+1)%s.length],f!==n&&A(i-o[2*f],2)+A(e-o[2*f+1],2)<c)return f;break}}while(f!==u);return a}render(t){const i=null==t?t=new v:void 0,{points:e,halfedges:n,triangles:s}=this;for(let i=0,l=n.length;i<l;++i){const l=n[i];if(l<i)continue;const h=2*s[i],r=2*s[l];t.moveTo(e[h],e[h+1]),t.lineTo(e[r],e[r+1])}return this.renderHull(t),i&&i.value()}renderPoints(t,i){void 0!==i||t&&"function"==typeof t.moveTo||(i=t,t=null),i=null==i?2:+i;const e=null==t?t=new v:void 0,{points:n}=this;for(let e=0,s=n.length;e<s;e+=2){const s=n[e],l=n[e+1];t.moveTo(s+i,l),t.arc(s,l,i,0,M)}return e&&e.value()}renderHull(t){const i=null==t?t=new v:void 0,{hull:e,points:n}=this,s=2*e[0],l=e.length;t.moveTo(n[s],n[s+1]);for(let i=1;i<l;++i){const s=2*e[i];t.lineTo(n[s],n[s+1])}return t.closePath(),i&&i.value()}hullPolygon(){const t=new b;return this.renderHull(t),t.value()}renderTriangle(t,i){const e=null==i?i=new v:void 0,{points:n,triangles:s}=this,l=2*s[t*=3],h=2*s[t+1],r=2*s[t+2];return i.moveTo(n[l],n[l+1]),i.lineTo(n[h],n[h+1]),i.lineTo(n[r],n[r+1]),i.closePath(),e&&e.value()}*trianglePolygons(){const{triangles:t}=this;for(let i=0,e=t.length/3;i<e;++i)yield this.trianglePolygon(i)}trianglePolygon(t){const i=new b;return this.renderTriangle(t,i),i.value()}}t.Delaunay=S,t.Voronoi=T,Object.defineProperty(t,"__esModule",{value:!0})}));
indow.$.BkgGradientSpeed=window.$styles[window.$.Style].BkgGradientSpeed,window.$.FixEdge=window.$styles[window.$.Style].FixEdge,window.$.FlowOrientation=window.$styles[window.$.Style].FlowOrientation,window.$.CellsOnTop=window.$styles[window.$.Style].CellsOnTop,window.$.SuperFlow=window.$styles[window.$.Style].SuperFlow,window.$.GradMode=window.$styles[window.$.Style].GradMode,window.$.FadeCellFillFn=window.$styles[window.$.Style].FadeCellFillFn,window.$.FadeCellStrokeFn=window.$styles[window.$.Style].FadeCellStrokeFn,window.$.CellDivideCount=window.$styles[window.$.Style].CellDivideCount,window.$.AreaWeight=window.$styles[window.$.Style].AreaWeight,window.$.AreaCurve=window.$styles[window.$.Style].AreaCurve,window.$.FlowBatches=window.$styles[window.$.Style].FlowBatches,window.$.TwistBkgSize=window.$styles[window.$.Style].TwistBkgSize,window.$.TwistBkgCurve=window.$styles[window.$.Style].TwistBkgCurve,window.$.Travel=window.$styles[window.$.Style].Travel,window.$.TwistBkg=window.$styles[window.$.Style].TwistBkg,window.$.TwistFlow=window.$styles[window.$.Style].TwistFlow,window.$.FlowWarp=window.$styles[window.$.Style].FlowWarp,window.$.BkgWarp=window.$styles[window.$.Style].BkgWarp,window.$.BkgFadeAmt=window.$styles[window.$.Style].BkgFadeAmt,window.$.Vignette=window.$styles[window.$.Style].Vignette,window.$.BkgFadeFn=window.$styles[window.$.Style].BkgFadeFn,window.$.CrayonTheme=window.$styles[window.$.Style].CrayonTheme,window.$.UseBkgCrayons=window.$styles[window.$.Style].UseBkgCrayons,window.$.UseBkgCrayonsMulti=window.$styles[window.$.Style].UseBkgCrayonsMulti,window.$.UseCellBkgCrayons=window.$styles[window.$.Style].UseCellBkgCrayons,window.$.UseCellLineCrayons=window.$styles[window.$.Style].UseCellLineCrayons,window.$.UseFlowCrayons=window.$styles[window.$.Style].UseFlowCrayons,window.$.CellShakeScale=window.$styles[window.$.Style].CellShakeScale,window.$.CellShakeStrength=window.$styles[window.$.Style].CellShakeStrength??null,window.$.BkgShakeScale=window.$styles[window.$.Style].BkgShakeScale,window.$.BkgShakeStrength=window.$styles[window.$.Style].BkgShakeStrength??null,window.$.FlowShakeScale=window.$styles[window.$.Style].FlowShakeScale,window.$.FlowShakeStrength=window.$styles[window.$.Style].FlowShakeStrength??null,window.$.NoiseTypeBkg=window.$styles[window.$.Style].NoiseTypeBkg,window.$.NoiseTypeFlow=window.$styles[window.$.Style].NoiseTypeFlow,window.$.CellHatchThresh=window.$styles[window.$.Style].CellHatchThresh,window.$.ColorBkgThinLineColorThresh=window.$styles[window.$.Style].ColorBkgThinLineColorThresh,window.$.CellThreshDir=window.$styles[window.$.Style].CellThreshDir,window.$.CellLineRender=window.$styles[window.$.Style].CellLineRender,window.$.LineVariance=window.$styles[window.$.Style].LineVariance,window.$.BkgRender=window.$styles[window.$.Style].BkgRender,window.$.CellOptimize=window.$styles[window.$.Style].CellOptimize,window.$.GlobalOffsetFlow=window.$styles[window.$.Style].GlobalOffsetFlow??360*random(),window.$.GlobalOffsetBkg=window.$styles[window.$.Style].GlobalOffsetBkg??360*random(),window.$.GlobalOffsetCell=window.$styles[window.$.Style].GlobalOffsetCell??360*random(),window.$.BaseSize=window.$styles[window.$.Style].BaseSize,window.$.LineThickness=window.$styles[window.$.Style].LineThickness,window.$.Spacing=window.$styles[window.$.Style].Spacing,window.$.BkgColor=color(window.$styles[window.$.Style].BkgColor),window.$.BkgGradient=window.$styles[window.$.Style].BkgGradient,window.$.BkgCellHatchThresh=window.$styles[window.$.Style].BkgCellHatchThresh,window.$.BkgLineRamp=window.$styles[window.$.Style].BkgLineRamp,window.$.ColorBkgThinLine=color(window.$styles[window.$.Style].ColorBkgThinLine),window.$.ColorSweepAlt=color(window.$styles[window.$.Style].ColorSweepAlt),window.$.ColorSweepAccent=color(window.$styles[window.$.Style].ColorSweepAccent),window.$.ColorSweepAccentAlt=color(window.$styles[window.$.Style].ColorSweepAccentAlt),window.$.ColorBkgLineFill=color(window.$styles[window.$.Style].ColorBkgLineFill),window.$.ColorSweep=color(window.$styles[window.$.Style].ColorSweep),window.$.ColorCellLines=color(window.$styles[window.$.Style].ColorCellLines),window.$.ColorCellBkg=color(window.$styles[window.$.Style].ColorCellBkg),window.$.ColorCellOutline=window.$styles[window.$.Style].ColorCellOutline?color(window.$styles[window.$.Style].ColorCellOutline):null,window.$.FlowBatchSize=window.$styles[window.$.Style].FlowBatchSize,window.$.CellRamp=window.$styles[window.$.Style].CellRamp,window.$.CellLineThickness=window.$styles[window.$.Style].CellLineThickness,window.$.CellLineSpacing=window.$styles[window.$.Style].CellLineSpacing,window.$.CellThresh=window.$styles[window.$.Style].CellThresh,window.$.CellHatch=window.$styles[window.$.Style].CellHatch,window.$.CellZoom=window.$styles[window.$.Style].CellZoom,window.$.BkgLineFillThresh=window.$styles[window.$.Style].BkgLineFillThresh,window.$.NoiseScale=window.$styles[window.$.Style].NoiseScale,window.$.NoiseStrength=window.$styles[window.$.Style].NoiseStrength,window.$.GradientBand=window.$styles[window.$.Style].GradientBand,window.$.GradientBandOffset=window.$styles[window.$.Style].GradientBandOffset,window.$.FlowScale=window.$styles[window.$.Style].FlowScale,window.$.FlowStrength=window.$styles[window.$.Style].FlowStrength,window.$.FlowZ=window.$styles[window.$.Style].FlowZ,window.$.FlowCells=window.$styles[window.$.Style].FlowCells,window.$.FlowGradient=window.$styles[window.$.Style].FlowGradient,window.$.FlowGradientFn=window.$styles[window.$.Style].FlowGradientFn,window.$.FlowGradientBand=window.$styles[window.$.Style].FlowGradientBand,window.$.FlowGradientOffset=window.$styles[window.$.Style].FlowGradientOffset,window.$.FlowSpeed=window.$styles[window.$.Style].FlowSpeed,window.$.FlowRender=window.$styles[window.$.Style].FlowRender,window.$.FlowWeight=window.$styles[window.$.Style].FlowWeight,window.$.CellRender=window.$styles[window.$.Style].CellRender,window.$.Pad=window.$styles[window.$.Style].Pad,window.$.PadOuter=random(.15,.75),window.$.BkgColorFlip=!1,window.$.CellHasGradient=window.$styles[window.$.Style].CellHasGradient,window.$.CellGradientStrokeA=window.$styles[window.$.Style].CellGradientStrokeA,window.$.CellGradientStrokeB=window.$styles[window.$.Style].CellGradientStrokeB,window.$.CellGradientFillA=window.$styles[window.$.Style].CellGradientFillA,window.$.CellGradientFillB=window.$styles[window.$.Style].CellGradientFillB,window.$.SweepAccentRatio=window.$styles[window.$.Style].SweepAccentRatio,window.$.DimChance=window.$styles[window.$.Style].DimChance,window.$.DimRange=window.$styles[window.$.Style].DimRange,window.$.CellOutlineWeight=window.$styles[window.$.Style].CellOutlineWeight,window.$.BkgColorFlip&&random()<.5){const e=window.$.BkgColor;window.$.BkgColor=window.$.ColorBkgThinLine,window.$.ColorBkgThinLine=e}return window.$.UseCellBkgCrayons&&(window.$.CellHasGradient=!1),window.$.UseFlowCrayons&&(window.$.ColorSweepAccent=color(0),window.$.ColorSweepAccentAlt=color(0)),window.$})(window.$f),window.windowResized(),colorMode(HSB,360,100,100),frameRate(60)};const se=({reset:e,cells:i,speed:o,scale:n,strength:l,col:t,weight:r,skip:w})=>{e&&re();const s=Array(i*i).fill().map(((e,o)=>[o%i/i+.5/i,~~(o/i)/i+.5/i]));Q(s);const a=te();let d=[];const h="Radial"===window.$.NoiseTypeFlow?N:noise,c=window.$.FlowWarp,g=window.$.FlowZ,$=window.$.FlowShakeStrength,C=window.$.FlowShakeScale,y=window.$.Pad;for(let[e,i]of s){let s=[];const p=~~((1-(.5*i+.25))*window.$.Travel);for(let t=0;t<p;t++){K++;const t=2*e-1,r=2*i-1;let w=h(e/n,i/n*c,K*g+($??h(e/C,i/C,0)*$))*l;if(window.$.TwistFlow&&(w+=J(t,r,1,window.$.TwistFlow,2)),e+=cos(w)*o,i+=sin(w)*o,e<y||i<y||e>1-y||i>1-y)continue;const d=~~(e*a),p=~~(i*a);if(p>I.length-1||d>I[0].length-1||I[p][d])break;let u=!1;for(let e=-1;e<1&&!u;e++)for(let i=-1;i<1&&!u;i++){const o=d+i,n=p+e;n<0||o<0||n>I.length-1||o>I[0].length-1||I[n][o]&&(u=!0)}if(u)break;s.push([e,i])}const u=s.length;for(let e=0;e<u;e++){const[i,o]=s[e],n=~~(i*a);I[~~(o*a)][n]=!0,e===u-1&&d.push(s[e])}if(w&&random()<w)continue;const f=window.$.FlowGradient?color(0):u<p*window.$.SweepAccentRatio?random()<.5?window.$.ColorSweepAlt:window.$.UseFlowCrayons?X(0):window.$.ColorSweep:u<p?random()<.5?window.$.ColorSweepAlt:window.$.UseFlowCrayons?X(0):window.$.ColorSweepAccent:t,S=window.$.FlowGradientBand?random(...window.$.FlowGradientBand):0,k=(random(-window.$.FlowGradientOffset,window.$.FlowGradientOffset)+window.$.GlobalOffsetFlow)%360;ne(s,f,r,S,k)}return d};function ae(e,i,o,n,l,t,r=1,w=!1,s=!1){const a=cos(i),d=sin(i),h=sqrt(width*width+height*height),c=Math.ceil(2*h/(o*width));let g=0;const $=[];for(let i=0;i<=c;i++){const n=i*o*width-h,l=width/2-h*a+n*d,t=height/2-h*d-n*a,r=width/2+h*a+n*d,w=height/2+h*d-n*a;he(l,t,r,w,e)&&($.push({x1:l,y1:t,x2:r,y2:w}),g++)}$.forEach(((i,o)=>{const a=(w?g-1-o:o)/(g-1),d=l+Math.pow(a,r)*t*width;!function(e,i,o,n,l,t,r){const w=l.length;let s=[];for(let t=0,r=w-1;t<w;r=t++){const w=l[t][0],a=l[t][1],d=l[r][0],h=l[r][1],c=ce(e,i,o,n,w,a,d,h);c&&s.push(c)}s.sort(((o,n)=>{const l=e-o[0],t=i-o[1],r=e-n[0],w=i-n[1];return l*l+t*t-(r*r+w*w)}));for(let e=1;e<s.length;e+=2)de(s[e-1][0],s[e-1][1],s[e][0],s[e][1],t,r)}(i.x1,i.y1,i.x2,i.y2,e,s?X():n,d)}))}function de(e,i,o,n,l,t){const r=atan2(n-i,o-e),w=t/2,s=w*sin(r),a=w*cos(r),d=e-s,h=i+a,c=e+s,g=i-a,$=o+s,C=n-a,y=o-s,p=n+a;fill(l),noStroke(),quad(d,h,c,g,$,C,y,p)}function he(e,i,o,n,l){const t=l.length;for(let r=0,w=t-1;r<t;w=r++){const t=l[r][0],s=l[r][1],a=l[w][0],d=l[w][1],h=(e-o)*(s-d)-(i-n)*(t-a);if(0!==h){const l=((e-t)*(s-d)-(i-s)*(t-a))/h,r=((o-t)*(i-s)-(n-s)*(e-t))/h;if(l>=0&&l<=1&&r>=0&&r<=1)return!0}}return!1}function ce(e,i,o,n,l,t,r,w){const s=o-e,a=n-i,d=r-l,h=w-t,c=e-l,g=i-t,$=h*s-d*a;if(0!==$){const o=(d*g-h*c)/$,n=(s*g-a*c)/$;if(o>=0&&o<=1&&n>=0&&n<=1)return[e+o*s,i+o*a]}return null}const ge=()=>{const{NoiseTypeFlow:e,FlowCells:i,FlowSpeed:o,FlowScale:n,FlowStrength:l,ColorSweepAccentAlt:t,FlowWeight:r,FlowZ:w,FlowBatchSize:s,FlowBatches:a,SuperFlow:d}=window.$,h="Radial"===e?N:noise;let c=[];le();const g=se({reset:!0,cells:i,speed:o,scale:n,strength:l,col:t,weight:r,z:0,skip:d?0:1}),$=se({reset:!0,cells:i,speed:o,scale:n,strength:l,col:t,weight:r,z:w*(s*a),skip:d?0:1});Array.prototype.push.apply(c,g),Array.prototype.push.apply(c,$),E=R.from(c);const{CellOptimize:C,CellShakeStrength:y,CellShakeScale:p,Pad:u,FlowOrientation:f}=window.$;if(C||y){for(let e=0;e<c.length;e++){let i=[...E.neighbors(e)],o=0,n=0,l=i.length;for(let e=0;e<l;e++){let t=i[e];o+=c[t][0]/l,n+=c[t][1]/l}if(y){const e=h(o/p,n/p,0)*y,i=random(.1,1);o+=o*Math.sin(e)*i,n+=n*Math.sin(e)*i}c[e][0]=o,c[e][1]=n}c=function(e,i,o,n){let l=1/0,t=1/0,r=-1/0,w=-1/0;for(let i of e)l=Math.min(l,i[0]),t=Math.min(t,i[1]),r=Math.max(r,i[0]),w=Math.max(w,i[1]);const s=1*(1-2*n)/(r-l),a=1*(1-2*n)/(w-t),d=(1-(r-l)*s)/2,h=(1-(w-t)*a)/2;return e.map((([e,i])=>[(e-l)*s+d,(i-t)*a+h]))}(c,0,0,u),f&&(c=function(e,i,o){const n=[.5,.5],l=n[0],t=n[1],r=e=>[l-(e[1]-t),t+(e[0]-l)],w=e=>[2*l-e[0],e[1]],s=[e=>e,w,r,e=>w(r(e)),e=>r(r(e)),e=>w(r(r(e))),e=>r(r(r(e)))][i];return e.map(s)}(c,f))}if(E=R.from(c),V=E.voronoi([0,0,width,height]),window.$.CellRender){const{Pad:e,CellDivideCount:i,CellThreshDir:o,CellThresh:n}=window.$;let l=[];const t=Array.from({length:i||1},((e,i)=>n/2**i));for(let n=0;n<(i||1);n++){const r=t[n];for(let n of V.cellPolygons())if(n){let t=!0;for(let i of n)if(i[0]<=e||i[1]<=e||i[0]>=1-e||i[1]>=1-e){t=!1;break}if(!t)continue;const w=ie(n);if(!window.$.Ghost&&(-1===o&&w>r||-1!==o&&w<r))continue;if(l.push(n),i<2)continue;const s=n.flatMap((e=>[e[0],e[1]])),a=O()(s);for(let e=0;e<a.length;e+=3){const i=[[s[2*a[e]],s[2*a[e]+1]],[s[2*a[e+1]],s[2*a[e+1]+1]],[s[2*a[e+2]],s[2*a[e+2]+1]],[s[2*a[e]],s[2*a[e]+1]]];l.push(i)}}}window.$.FixEdge&&(l=function(e,i,o,n){let l=1/0,t=1/0,r=-1/0,w=-1/0;e.forEach((e=>{e.forEach((e=>{e[0]<l&&(l=e[0]),e[1]<t&&(t=e[1]),e[0]>r&&(r=e[0]),e[1]>w&&(w=e[1])}))}));const s=1*(1-2*n)/(r-l),a=1*(1-2*n)/(w-t),d=(1-(r-l)*s)/2,h=(1-(w-t)*a)/2;return e.map((e=>e.map((([e,i])=>[(e-l)*s+d,(i-t)*a+h]))))}(l,0,0,1-window.$.Pad/2));for(let e of l){let i=e.map((([e,i])=>[e*width,i*height]));if(!window.$.FixEdge){let o=1/0,n=1/0,l=-1/0,t=-1/0;for(let e of c)o=Math.min(o,e[0]),n=Math.min(n,e[1]),l=Math.max(l,e[0]),t=Math.max(t,e[1]);const r=width/(l-o),w=height/(t-n),s=(width-(l-o)*r)/2,a=(height-(t-n)*w)/2;i=e.map((([e,i])=>[(e-o)*r+s,(i-n)*w+a]))}let o=window.$.UseCellBkgCrayons?X():window.$.ColorCellBkg;window.$.ColorCellBkg?fill(color((hue(o)+window.$.GlobalOffsetCell)%360,saturation(o),brightness(o))):noFill();const n=ee(e);let l=window.$.CellHasGradient?lerpColor(color((hue(window.$.CellGradientStrokeA)+window.$.GlobalOffsetCell)%360,saturation(window.$.CellGradientStrokeA),brightness(window.$.CellGradientStrokeA)),color((hue(window.$.CellGradientStrokeB)+window.$.GlobalOffsetCell)%360,saturation(window.$.CellGradientStrokeB),brightness(window.$.CellGradientStrokeB)),we(n,"stroke")):window.$.ColorCellLines;l=window.$.UseCellLineCrayons?X():l,window.$.ColorCellOutline?stroke(color((hue(window.$.ColorCellOutline)+window.$.GlobalOffsetCell)%360,saturation(window.$.ColorCellOutline),brightness(window.$.ColorCellOutline))):noStroke(),window.$.CellHasGradient&&fill(lerpColor(window.$.CellGradientFillA,window.$.CellGradientFillB,we(n,"fill")));const t=ie(e);let r=window.$.CellOutlineWeight*width+(window.$.AreaWeight?t**window.$.AreaCurve*window.$.AreaWeight*width:0);strokeWeight(r),noStroke(),window.$.Ghost&&(window.$.HyperGhost?t>=window.$.CellThresh:t<window.$.CellThresh)&&noFill(),beginShape();for(const e of i)vertex(...e);endShape(),noFill();const w=oe(i),s=h(e[0][0]/window.$.FlowScale,e[0][1]/window.$.FlowScale*window.$.FlowWarp,0)*window.$.FlowStrength,a=Math.cos(s)/2+.5,d=window.$.CellZoom?Math.pow(a,2)*window.$.CellZoom+1:1,g=window.$.CellLineThickness;if(noFill(),window.$.Ghost&&!(window.$.HyperGhost?t<window.$.CellThresh:t>=window.$.CellThresh)||(window.$.CellLineRender&&ae(i,w,window.$.CellLineSpacing*d,l,.001,.001*g,window.$.CellRamp*a,!1,!1),window.$.CellLineRender&&(window.$.CellHatch&&!window.$.CellHatchThresh||window.$.CellHatchThresh&&t>window.$.CellHatchThresh)&&ae(i,w+PI/2,window.$.CellLineSpacing*d,l,.001,.001*g,window.$.CellRamp*a,!1,!1)),window.$.ColorCellOutline){let e=color((hue(window.$.ColorCellOutline)+window.$.GlobalOffsetCell)%360,saturation(window.$.ColorCellOutline),brightness(window.$.ColorCellOutline));window.$.Ghost&&(window.$.HyperGhost?t>=window.$.CellThresh:t<window.$.CellThresh)&&(e=window.$.GhostInvert?100:0,strokeWeight(r*(window.$.GhostWeight||1.125))),noFill(),stroke(e),beginShape();for(const e of i)vertex(...e);endShape()}}}},$e=()=>{if(window.$.FlowRender)for(let e=0;e<window.$.FlowBatchSize/window.$.FlowBatches;e++){let e=random()<.5?window.$.UseFlowCrayons?X(2):window.$.ColorSweep:window.$.ColorSweepAccentAlt;se({reset:!0,cells:window.$.FlowCells,speed:window.$.FlowSpeed,scale:window.$.FlowScale,strength:window.$.FlowStrength,col:color(hue(e),saturation(e)+random(-15,15),brightness(e)+random(-15,15)),weight:window.$.FlowWeight})}};function Ce(e){const i=window.$.Spacing+window.$.LineThickness,o=window.$.BaseSize,n=o*window.$.Pad*window.$.PadOuter,l=o-n,t=i*o,r=Z.query({x:e.x-t,y:e.y-t,width:2*t,height:2*t});if(e.x<n||e.x>l||e.y<n||e.y>l)return!1;for(const i of r)if(dist(e.x,e.y,i.x,i.y)<=t)return!1;return!0}function ye(e,i,o,n){const l="Radial"===window.$.NoiseTypeBkg?N:noise,t=[e];let r=e.copy();const w=window.$.StreamFactor||.1;for(;;){let e=r.x/window.$.BaseSize*2-1,i=r.y/window.$.BaseSize*2-1,o=l(e/window.$.NoiseScale,i/window.$.NoiseScale*window.$.BkgWarp,window.$.BkgShakeStrength?l(e/window.$.BkgShakeScale,i/window.$.BkgShakeScale,0)*window.$.BkgShakeStrength:0)*window.$.NoiseStrength;window.$.TwistBkgCurve&&(o+=J(e,i,window.$.TwistBkgSize,window.$.TwistBkg,window.$.TwistBkgCurve));const n=cos(o),s=sin(o);if(r.add(n*window.$.Spacing*window.$.BaseSize*w,s*window.$.Spacing*window.$.BaseSize*w),!Ce(r)||r.x<0||r.x>window.$.BaseSize||r.y<0||r.y>window.$.BaseSize)break;t.push(r.copy())}const s=360*random();if(!(t.length<2))if(Z.insert({x:e.x,y:e.y}),t.forEach((e=>Z.insert({x:e.x,y:e.y}))),2===window.$.GradMode?t.length<window.$.StreamThresh:1===window.$.GradMode?i<window.$.BkgLineFillThresh:i>=window.$.BkgLineFillThresh){noStroke(),fill(0);const e=function(e,i){const o=[],n=[];return e.forEach(((l,t)=>{let r,w,s,a;const d=e[(t-1+e.length)%e.length],h=e[(t+1)%e.length];if(0===t){const e=Math.atan2(h[1]-l[1],h[0]-l[0]);r=i/2*Math.cos(e+Math.PI/2),w=i/2*Math.sin(e+Math.PI/2),s=i/2*Math.cos(e-Math.PI/2),a=i/2*Math.sin(e-Math.PI/2)}else if(t===e.length-1){const e=Math.atan2(l[1]-d[1],l[0]-d[0]);r=i/2*Math.cos(e+Math.PI/2),w=i/2*Math.sin(e+Math.PI/2),s=i/2*Math.cos(e-Math.PI/2),a=i/2*Math.sin(e-Math.PI/2)}else{const e=(Math.atan2(l[1]-d[1],l[0]-d[0])+Math.atan2(h[1]-l[1],h[0]-l[0]))/2;r=i/2*Math.cos(e+Math.PI/2),w=i/2*Math.sin(e+Math.PI/2),s=i/2*Math.cos(e-Math.PI/2),a=i/2*Math.sin(e-Math.PI/2)}o.push([l[0]+r,l[1]+w]),n.push([l[0]+s,l[1]+a])})),o.concat(n.reverse())}(t.map((({x:e,y:i})=>[e*(width/window.$.BaseSize),i*(height/window.$.BaseSize)])),i*width);ae(e,s,.005,n,.001,.002,window.$.BkgLineRamp,random()<.5,window.$.UseBkgCrayonsMulti),random()<window.$.BkgCellHatchThresh&&ae(e,s+PI/2,.005,n,.001,.002,window.$.BkgLineRamp,random()<.5,window.$.UseBkgCrayonsMulti)}else{const e=i*window.$.BaseSize*(width/window.$.BaseSize);noStroke(),fill(o),strokeWeight(e);const n=random(-window.$.GradientBandOffset,window.$.GradientBandOffset);let l=window.$.BkgGradientSpeed||t.length;t.forEach(((i,o)=>{window.$.BkgGradient&&fill(color((o/l*window.$.GradientBand+n+(window.$.BkgGradientShift??0))%360,100,100)),circle(i.x*(width/window.$.BaseSize),i.y*(height/window.$.BaseSize),e)}))}}window.draw=()=>{let e=0;if(0===q&&window.$.BkgRender)for(;e<1e3;){const i=random(window.$.BaseSize),o=random(window.$.BaseSize),n=createVector(i,o);if(Ce(n)){let e=1;(1===window.$.BkgFadeFn||-1===window.$.BkgFadeFn)&&(e=o/window.$.BaseSize*window.$.BkgFadeAmt+(1-window.$.BkgFadeAmt));let i,l=color(hue(window.$.ColorBkgThinLine),saturation(window.$.ColorBkgThinLine),brightness(window.$.ColorBkgThinLine)*(random()<window.$.DimChance?random(...window.$.DimRange):1)*e);random()>window.$.ColorBkgThinLineColorThresh&&(l=color(hue(l),0,brightness(l)*e)),window.$.UseBkgCrayons&&(i=X(),i=color(hue(i),saturation(i),brightness(i)*e)),ye(n,window.$.LineThickness*("None"===window.$.LineVariance?1:"Random"===window.$.LineVariance?random(.5,1.5):"Alternate"===window.$.LineVariance?random()<.5?.2:1:void 0),window.$.UseBkgCrayons?i:l,window.$.UseBkgCrayons?color(hue(i),saturation(i),brightness(i)*e):color(hue(window.$.ColorBkgLineFill),saturation(window.$.ColorBkgLineFill),brightness(window.$.ColorBkgLineFill)*e)),j=0}else j++;if(e++,j>=150)break}if(q>0||!window.$.BkgRender||j>=150){if(0===q)return q++;if(1===q)return window.$.Vignette&&ue(),q++;if(2===q)return K=0,window.$.CellsOnTop||ge(),q++;if(3===q&&le(),q<window.$.FlowBatches+3){for(let e=0;e<1;e++)K=0,$e(),q++;return}window.$.CellsOnTop&&(K=0,ge()),noLoop(),"saving"===window.renderStatus?(window.renderStatus="complete",saveCanvas("ephemeral_tides","png")):window.renderStatus="complete",q=4}};const pe=(e,i,o)=>((e,i,o,n)=>{const l=Math.min(o/e,n/1);return[e*l,1*l]})(e,0,i,o),ue=()=>{let e=random(.95,.98),i=random(.45,.5),o=random(1,2);const n=pixelDensity();loadPixels();for(let l=0;l<height*n;l++)for(let t=0;t<width*n;t++){const r=4*(t+l*width*n),w=dist(t/n,l/n,width/2,height/2),s=dist(0,0,width/2,height/2),a=pow(w/(s*i),o),d=map(a,0,1,1,e);pixels[r]*=d,pixels[r+1]*=d,pixels[r+2]*=d}updatePixels()},fe=()=>{background(window.$.BkgColor),window.$.Vignette&&ue(),Z=new l(0,0,window.$.BaseSize,window.$.BaseSize,16),le(),q=0,K=0,j=0};window.windowResized=()=>{if("saving"===window.renderStatus)return;le();const[e,i]=pe(1,windowWidth,windowHeight);resizeCanvas(e,i),fe(),loop()};const Se=e=>{if("saving"===window.renderStatus)return;const i=pixelDensity();resizeCanvas(e/i,e/i*1),window.renderStatus="saving",fe(),loop()};window.keyTyped=()=>{switch(key){case"p":Se(12288);break;case"s":Se(2560)}}})()})();
8,CellThresh:.002,CellHatch:random()<.5,BkgLineFillThresh:.0125,NoiseScale:random([.25,.5,.75]),NoiseStrength:random([2,3,4]),FlowScale:.5,FlowStrength:7,FlowZ:5e-8,FlowCells:24,FlowGradient:!1,FlowGradientBand:null,FlowGradientOffset:0,FlowGradientFn:"constant",FlowSpeed:1e-4,FlowWeight:5e-4,FlowRender:!0,CellRender:!0,BkgLineRamp:0,BkgCellHatchThresh:random(0,.01,.1),CellHasGradient:!1,CellGradientFillA:color((0+window.$.Shift)%360,45,90),CellGradientFillB:color((280+window.$.Shift)%360,90,90),CellGradientStrokeA:color((300+window.$.Shift)%360,100,100),CellGradientStrokeB:color((340+window.$.Shift)%360,100,80),SweepAccentRatio:.33},2:{Ghost:window.$.isMirage&&!window.$.isHyper,GhostInvert:window.$.isMirage&&!window.$.isHyper,FixEdge:!0,CrayonTheme:"Red",FlowOrientation:0,FadeCellFillFn:4,FadeCellStrokeFn:0,CellsOnTop:window.$.isHyper&&window.$.isMirage,CellDivideCount:window.$.isMirage?2:window.$.isHyper?random([1,2]):1,Pad:random([.05,.1]),AreaWeight:0,AreaCurve:1.75,FlowBatches:16,TwistBkgSize:1,TwistBkgCurve:0,Travel:window.$.isHyper?100:~~random(150,200),TwistBkg:0,TwistFlow:0,FlowWarp:1,BkgWarp:1,BkgFadeAmt:window.$.isHyper||window.$.isMirage?1:0,Vignette:window.$.isHyper||window.$.isMirage,BkgFadeFn:window.$.isHyper?random([-1,1]):0,UseBkgCrayons:!window.$.isHyper&&window.$.isMirage,UseBkgCrayonsMulti:!1,UseFlowCrayons:!1,UseCellBkgCrayons:!1,UseCellLineCrayons:!1,CellShakeScale:window.$.isHyper?.5:0,CellShakeStrength:window.$.isHyper?random(.5,1):null,FlowOrientation:window.$.isHyper?Math.floor(7*random()):0,BkgShakeScale:.1,FlowShakeScale:0,NoiseTypeBkg:"Radial",NoiseTypeFlow:"Radial",CellHatchThresh:null,CellThreshDir:window.$.isHyper&&window.$.isMirage?1:-1,CellLineRender:!0,LineVariance:"Random",BkgRender:!0,CellOutlineWeight:window.$.isMirage&&!window.$isHyper?5e-4:75e-5,DimChance:window.$.isHyper||window.$.isMirage?.8:.75,DimRange:window.$.isHyper||window.$.isMirage?[.15,.45]:[.2,.6],CellOptimize:!0,GlobalOffsetFlow:window.$.isHyper?random(0,360):0,GlobalOffsetBkg:0,GlobalOffsetCell:0,BaseSize:~~random(256,512),LineThickness:window.$.isMirage||window.$.isHyper?5e-4:random(5e-4,.002),Spacing:window.$.isMirage?.002:random(.001,.0015),BkgColor:color(0),GradientBand:window.$.isHyper?random(360):0,GradientBandOffset:window.$.isHyper?random([0,360]):0,ColorSweep:color(window.$.isMirage&&!window.$.isHyper?random(0,5):random(195,210),100,60),ColorSweepAlt:color(0),ColorSweepAccent:color(window.$.isMirage&&!window.$.isHyper?random(0,5):random(170,185),window.$.isMirage&&!window.$.isHyper?100:90,window.$.isMirage&&!window.$.isHyper?35:85),ColorSweepAccentAlt:color(0),ColorBkgThinLine:color(100),ColorBkgThinLineColorThresh:1,ColorBkgLineFill:color(0),ColorCellLines:color(window.$.isHyper?100:0),ColorCellBkg:color(window.$.isHyper?0:100),ColorCellOutline:color(0),FlowBatchSize:64,CellZoom:0,CellRamp:window.$.isHyper?1:0,CellLineThickness:window.$.isHyper?1:1.1,CellLineSpacing:random(.002,.004),CellThresh:window.$.isHyper?random(1e-4,2e-4):window.$.isMirage?random(5e-4,75e-5):random(2e-4,25e-5),CellHatch:!window.$.isHyper&&!window.$.isMirage,BkgLineFillThresh:.05,NoiseScale:window.$.isMirage&&!window.$.isHyper?random(2,3):.5,NoiseStrength:window.$.isMirage&&!window.$.isHyper?random(1,2):3,FlowScale:random(.125,.5),FlowStrength:window.$.isMirage?4:8,FlowZ:window.$.isMirage?1e-7:1e-8,FlowCells:window.$.isMirage?54:64,FlowGradient:window.$.isHyper,FlowGradientBand:window.$.isHyper?[.5,.5]:null,FlowGradientOffset:window.$.isHyper?random([0,30]):0,FlowGradientFn:window.$.isHyper?"lighten":"constant",FlowSpeed:.001,FlowWeight:window.$.isMirage?.0015:.001,FlowRender:!0,CellRender:!0,BkgLineRamp:0,BkgCellHatchThresh:0,CellHasGradient:window.$.isHyper,CellGradientFillA:window.$.isHyper?color((0+window.$.Shift+window.$.ShiftLargest)%360,100,100):color(0,45,90),CellGradientFillB:window.$.isHyper?color((180+window.$.Shift+window.$.ShiftLargest)%360,100,100):color(280,90,90),CellGradientStrokeA:window.$.isHyper?color((180+window.$.Shift+window.$.ShiftLargest)%360,100,100):color(300,100,100),CellGradientStrokeB:window.$.isHyper?color((360+window.$.Shift+window.$.ShiftLargest)%360,100,100):color(340,100,80),SweepAccentRatio:.15},3:{FlowOrientation:0,FadeCellFillFn:4,FadeCellStrokeFn:0,Pad:random([.05,.1]),AreaWeight:0,AreaCurve:1.75,FlowBatches:16,TwistBkgSize:random([.1,.5,1,2]),TwistBkgCurve:window.$.isHyper?random(2,5):1,CrayonTheme:"Riptide",Travel:random([250,500,750,1e3,2e3]),TwistBkg:window.$.isHyper?random(25,75):0,TwistFlow:window.$.isHyper?random(0,25):0,FlowWarp:1,BkgWarp:window.$.isHyper?1:random([-.5,1,2,4]),BkgFadeAmt:0,Vignette:!1,BkgFadeFn:0,UseBkgCrayons:!1,UseBkgCrayonsMulti:!1,UseFlowCrayons:!1,UseCellBkgCrayons:!1,UseCellLineCrayons:!1,CellShakeScale:0,BkgShakeScale:0,FlowShakeScale:0,NoiseTypeBkg:"Radial",NoiseTypeFlow:"Radial",CellHatchThresh:null,CellThreshDir:1,CellLineRender:!0,LineVariance:"Random",BkgRender:!0,CellOutlineWeight:.001,DimChance:.5,DimRange:[.2,.8],CellOptimize:!0,GlobalOffsetFlow:0,GlobalOffsetBkg:0,GlobalOffsetCell:0,BaseSize:random([512,1024]),LineThickness:random(.001,.0016)*(window.$.isMirage?.75:1),Spacing:window.$.isMirage?random(.002,.003):random(.006,.007),BkgColor:window.$.isMirage?color((210+window.$.Shift)%360,100,15):color((220+window.$.Shift)%360,100,15),BkgGradient:!0,GradientBand:10,GradientBandOffset:30,ColorSweep:window.$.isHyper?color((205+window.$.Shift/4)%360,0,100):color(random(10,50),random(0,12),random(98,100)),ColorSweepAlt:color(0),ColorSweepAccent:window.$.isHyper?color((180+window.$.Shift/4)%360,100,70):window.$.isMirage?color(100):color(random((335+window.$.Shift/4)%360,345),random(85,95),random(90,100)),ColorSweepAccentAlt:color(0),ColorBkgThinLine:color(random((190+window.$.Shift)%360,200),random(90,100),random(90,100)),ColorBkgThinLineColorThresh:1,ColorBkgLineFill:color(100),ColorCellLines:color(0),ColorCellBkg:color(128),ColorCellOutline:color(0),FlowBatchSize:32,CellZoom:1.5,CellRamp:.5,CellLineThickness:1,CellLineSpacing:.001,CellThresh:25e-5,CellHatch:!1,BkgLineFillThresh:.0125,NoiseScale:window.$.isHyper?0:2,NoiseStrength:window.$.isHyper?0:10,FlowScale:window.$.isHyper?random(.4,.6):random(.2,.25),FlowStrength:random(7,9),FlowZ:8e-8,FlowCells:~~random(24,32),FlowGradient:!1,FlowGradientBand:null,FlowGradientOffset:0,FlowGradientFn:"constant",FlowSpeed:8e-4,FlowWeight:75e-5*(window.$.isMirage?1.25:1),FlowRender:!0,CellRender:!1,BkgLineRamp:0,BkgCellHatchThresh:0,CellHasGradient:!1,CellGradientFillA:color(0,45,90),CellGradientFillB:color(280,90,90),CellGradientStrokeA:color(300,100,100),CellGradientStrokeB:color(340,100,80),SweepAccentRatio:.33,BkgGradientShift:random((190+window.$.Shift)%360,200)},4:{Ghost:window.$.isHyper&&window.$.isMirage,HyperGhost:window.$.isHyper&&window.$.isMirage,GhostWeight:random(2.5,3),FlowOrientation:0,FadeCellFillFn:4,FadeCellStrokeFn:0,Pad:random([.05,.1]),AreaWeight:0,AreaCurve:1.75,FlowBatches:16,TwistBkgSize:1,TwistBkgCurve:0,Travel:window.$.isHyper&&window.$.isMirage?100:~~random(window.$.isMirage?50:100,500),TwistBkg:0,TwistFlow:0,FlowWarp:window.$.isMirage&&window.$.isHyper?random(.5,2):1,BkgWarp:1,BkgFadeAmt:0,Vignette:!1,BkgFadeFn:0,CrayonTheme:null,UseBkgCrayons:!1,UseBkgCrayonsMulti:!1,UseFlowCrayons:!1,UseCellBkgCrayons:!1,UseCellLineCrayons:!1,CellShakeScale:0,BkgShakeScale:0,FlowShakeScale:0,NoiseTypeBkg:window.$.isMirage?"Linear":"Radial",NoiseTypeFlow:"Radial",CellHatchThresh:null,CellThreshDir:-1,CellLineRender:!0,LineVariance:"Random",BkgRender:!0,CellOutlineWeight:window.$.isHyper&&window.$.isMirage?8e-4:9e-4,DimChance:.5,DimRange:[.2,.8],CellOptimize:!0,GlobalOffsetFlow:0,GlobalOffsetBkg:0,GlobalOffsetCell:0,BaseSize:512,LineThickness:.001,Spacing:.001,BkgColor:window.$.isHyper?color(0):color(174,72,56),BkgGradient:!0,GradientBand:60,GradientBandOffset:30,ColorSweep:color(0,0,100),ColorSweepAlt:color(0),ColorSweepAccent:color(340,90,100),ColorSweepAccentAlt:color(P.Black),ColorBkgThinLine:color(340,100,100),ColorBkgThinLineColorThresh:1,ColorBkgLineFill:color(100),ColorCellLines:color(0),ColorCellBkg:color(174,72,56),ColorCellOutline:window.$.isMirage?color(0):null,FlowBatchSize:32,CellZoom:0,CellRamp:2,CellLineThickness:1,CellLineSpacing:.002,CellThresh:window.$.isHyper&&window.$.isMirage?15e-5:25e-5,CellHatch:random([!1,!0]),BkgLineFillThresh:.0125,NoiseScale:2,NoiseStrength:10,FlowScale:random(.25,.33),FlowStrength:8,FlowZ:8e-8,FlowCells:~~random(48,64),FlowGradient:!0,FlowGradientBand:[.1,.2],FlowGradientOffset:30,FlowGradientFn:"constant",FlowSpeed:.001,FlowWeight:.001,FlowRender:!0,CellRender:!0,BkgLineRamp:0,BkgCellHatchThresh:0,CellHasGradient:!1,CellGradientFillA:color(0,45,90),CellGradientFillB:color(280,90,90),CellGradientStrokeA:color(300,100,100),CellGradientStrokeB:color(340,100,80),SweepAccentRatio:.33,BkgGradientShift:340},5:{GhostInvent:!0,FixEdge:!0,FlowOrientation:window.$.isHyper&&window.$.isMirage?Math.floor(7*random()):0,CellsOnTop:!0,SuperFlow:window.$.isHyper&&window.$.isMirage,GradMode:2,StreamThresh:50,StreamFactor:.01,FadeCellFillFn:4,FadeCellStrokeFn:0,Pad:window.$.isHyper||window.$.isMirage?random([.05,.1]):.15,AreaWeight:1.5,AreaCurve:1.75,FlowBatches:16,TwistBkgSize:1,TwistBkgCurve:0,CellDivideCount:2,Travel:random(1e3,2e3),TwistBkg:0,TwistFlow:0,FlowWarp:random([.5,1,2]),BkgWarp:window.$.isMirage?.5:1,BkgFadeAmt:1,Vignette:window.$.isHyper,BkgFadeFn:0,CrayonTheme:null,UseBkgCrayons:!1,UseBkgCrayonsMulti:!1,UseFlowCrayons:!1,UseCellBkgCrayons:!1,UseCellLineCrayons:!1,CellShakeScale:window.$.isHyper&&window.$.isMirage?random(.5,1.5):0,CellShakeStrength:window.$.isHyper&&window.$.isMirage?random(1,2):null,BkgShakeScale:window.$.isHyper?1:0,BkgShakeStrength:window.$.isHyper?1.5:null,FlowShakeScale:0,NoiseTypeBkg:"Radial",NoiseTypeFlow:"Radial",CellHatchThresh:1,CellThreshDir:window.$.isHyper&&window.$.isMirage?1:-1,CellLineRender:!0,LineVariance:"Random",BkgRender:window.$.isHyper,CellOutlineWeight:window.$.isHyper&&window.$.isMirage?.0015:window.$.isMirage?8e-4:.001,DimChance:window.$.isHyper?.8:.5,DimRange:[.2,window.$.isHyper?.5:.8],CellOptimize:!0,GlobalOffsetFlow:random(0,360),GlobalOffsetBkg:random(0,360),BaseSize:512,LineThickness:.02,Spacing:random(.025,.05),BkgColor:color(0),BkgGradient:!0,BkgGradientSpeed:500,GradientBand:360*random(.5,2),GradientBandOffset:random(0,60),ColorSweep:color(window.$.isHyper?0:100),ColorSweepAlt:color(window.$.isHyper?100:0),ColorSweepAccent:color(340,90,100),ColorSweepAccentAlt:color(window.$.isHyper?100:0),ColorBkgThinLine:color(200,100,100),ColorBkgThinLineColorThresh:1,ColorBkgLineFill:color(window.$.isHyper?32:100),ColorCellLines:color(window.$.isHyper?0:100),ColorCellBkg:color(window.$.isHyper?100:0),ColorCellOutline:color(window.$.isHyper?0:100),FlowBatchSize:64,CellZoom:window.$.isHyper&&window.$.isMirage?1:0,CellRamp:window.$.isHyper&&window.$.isMirage?0:2,CellLineThickness:window.$.isMirage?random(2,3):1,CellLineSpacing:window.$.isMirage?random(.004,.006):.002,CellThresh:25e-5*(window.$.isMirage?3:1),CellHatch:!1,BkgLineFillThresh:.03,NoiseScale:5,NoiseStrength:2,FlowScale:window.$.isMirage?random(.25,.5):.25,FlowStrength:window.$.isHyper&&window.$.isMirage?4:8,FlowZ:1e-8,FlowCells:window.$.isHyper||window.$.isMirage?window.$.isHyper?45:~~random(54,64):~~random(30,36),FlowGradient:!0,FlowGradientBand:[random(1,1.5)*(window.$.isMirage?.75:1),random(1.5,2)*(window.$.isMirage?.75:1)],FlowGradientOffset:random(0,60),FlowGradientFn:window.$.isHyper?"lighten":"constant",FlowSpeed:window.$.isHyper?5e-4:.001,FlowWeight:.001,FlowRender:!0,CellRender:!0,BkgLineRamp:0,BkgCellHatchThresh:.001,CellHasGradient:!1,CellGradientFillA:color(0),CellGradientFillB:color(0),CellGradientStrokeA:color(0),CellGradientStrokeB:color(0),SweepAccentRatio:.33,BkgGradientShift:360*random()},6:U(),7:{BkgGradientSpeed:1e3,FixEdge:!0,FlowOrientation:0,CellsOnTop:!0,FadeCellFillFn:4,FadeCellStrokeFn:0,Pad:random([.05,.1,.15]),CellDivideCount:3,AreaWeight:0,AreaCurve:1.75,FlowBatches:24,TwistBkgSize:1,TwistBkgCurve:0,Travel:random(200,2e3),TwistBkg:0,TwistFlow:0,FlowWarp:1,BkgWarp:1,BkgFadeAmt:.5,BkgFadeFn:random([-1,1]),CrayonTheme:window.$.isHyper?"RGB":"Crayon",UseBkgCrayons:!1,UseBkgCrayonsMulti:!1,UseFlowCrayons:!1,UseCellBkgCrayons:!1,UseCellLineCrayons:!1,CellShakeScale:.5,CellShakeStrength:5,FlowOrientation:Math.floor(7*random()),BkgShakeScale:window.$.isMirage&&!window.$.isHyper?1.25:.1,BkgShakeStrength:window.$.isMirage&&!window.$.isHyper?2:.4,FlowShakeScale:0,NoiseTypeBkg:"Radial",NoiseTypeFlow:"Radial",CellHatchThresh:null,CellThreshDir:1,CellLineRender:!0,LineVariance:"Random",BkgRender:!0,CellOutlineWeight:window.$.isHyper||window.$.isMirage?.002:.001,DimChance:.5,DimRange:[.2,.8],CellOptimize:!0,GlobalOffsetFlow:0,GlobalOffsetBkg:0,GlobalOffsetCell:0,BaseSize:256,LineThickness:.01,Spacing:.02,BkgColor:color(0),BkgGradient:!1,GradientBand:random([360,720,1080]),GradientBandOffset:0,ColorSweep:color(160,40,75),ColorSweepAlt:color(P.Paper),ColorSweepAccent:color(180,85,40),ColorSweepAccentAlt:color(P.Paper),ColorBkgThinLine:color(0),ColorBkgThinLineColorThresh:1,ColorBkgLineFill:color(24),ColorCellLines:color(24),ColorCellBkg:color(0),ColorCellOutline:color(72),FlowBatchSize:window.$.isMirage&&!window.$.isHyper?72:64,CellZoom:0,CellRamp:window.$.isMirage?2.5:1,CellLineThickness:window.$.isMirage?1.5:1,CellLineSpacing:window.$.isMirage?.015:.025,CellThresh:random(.01,.02),CellHatch:!window.$.isMirage,BkgLineFillThresh:.01,NoiseScale:7,NoiseStrength:1,FlowScale:window.$.isMirage&&!window.$.isHyper?.33:.25,FlowStrength:8,FlowZ:window.$.isHyper&&window.$.isMirage?1e-8:8e-8,FlowCells:window.$.isMirage?~~random(50,64):~~random(30,40),FlowGradient:window.$.isHyper,FlowGradientBand:window.$.isHyper?[1,2]:null,FlowGradientOffset:0,FlowGradientFn:"constant",FlowSpeed:.001,FlowWeight:.001,FlowRender:!0,CellRender:!0,BkgLineRamp:.5,BkgCellHatchThresh:1,CellHasGradient:!1,CellGradientFillA:color(0),CellGradientFillB:color(0),CellGradientStrokeA:color(0),CellGradientStrokeB:color(0),SweepAccentRatio:.33,BkgGradientShift:360*random()},8:{FixEdge:!0,FlowOrientation:Math.floor(7*random()),CellsOnTop:!0,FadeCellFillFn:4,FadeCellStrokeFn:0,Pad:random([.05,.1]),AreaWeight:random([1,2]),AreaCurve:1.75,FlowBatches:16,TwistBkgSize:1,TwistBkgCurve:0,Travel:window.$.isHyper?500:250,TwistBkg:0,TwistFlow:0,FlowWarp:1,BkgWarp:1,BkgFadeAmt:window.$.isHyper?1:0,Vignette:window.$.isHyper,BkgFadeFn:window.$.isHyper?random([-1,1]):0,CrayonTheme:"Carnival",UseBkgCrayons:!0,UseBkgCrayonsMulti:!1,UseFlowCrayons:!0,UseCellBkgCrayons:!window.$.isHyper,UseCellLineCrayons:!0,CellShakeScale:.25,CellShakeStrength:window.$.isHyper||!window.$.isHyper&&window.$.isMirage?1:0,BkgShakeScale:0,FlowShakeScale:0,NoiseTypeBkg:"Radial",NoiseTypeFlow:"Radial",CellHatchThresh:null,CellThreshDir:1,CellLineRender:!0,LineVariance:"Random",BkgRender:!0,CellOutlineWeight:.001,DimChance:.5,DimRange:[.2,.8],CellOptimize:!0,GlobalOffsetFlow:0,GlobalOffsetBkg:0,GlobalOffsetCell:0,BaseSize:128,LineThickness:random(5e-4,.001),Spacing:.005,BkgColor:window.$.isHyper?color(0):color(random([P.Cardboard,P.Paper])),BkgGradient:!1,GradientBand:0,GradientBandOffset:0,ColorSweep:color(200,100,100),ColorSweepAlt:color(0),ColorSweepAccent:color(180,80,80),ColorSweepAccentAlt:color(0),ColorBkgThinLine:color(0),ColorBkgThinLineColorThresh:1,ColorBkgLineFill:color(0),ColorCellLines:window.$.isHyper?color(15):color(340,100,40),ColorCellBkg:color(0),ColorCellOutline:window.$.isHyper?color(P.Cardboard):color(0,100,100),FlowBatchSize:64,CellZoom:1,CellRamp:2,CellLineThickness:1,CellLineSpacing:.005,CellThresh:window.$.isHyper?25e-5:4e-4,CellHatch:!window.$.isMirage,BkgLineFillThresh:.0125,NoiseScale:random(.25,1),NoiseStrength:3,FlowScale:.25,FlowStrength:8,FlowZ:window.$.isHyper?1e-7:8e-8,FlowCells:window.$.isHyper?32:50,FlowGradient:!1,FlowGradientBand:null,FlowGradientOffset:0,FlowGradientFn:"constant",FlowSpeed:8e-4,FlowWeight:.001,FlowRender:!0,CellRender:!0,BkgLineRamp:0,BkgCellHatchThresh:0,CellHasGradient:!window.$.isHyper,CellGradientFillA:color(0,45,90),CellGradientFillB:color(280,90,90),CellGradientStrokeA:color(300,100,100),CellGradientStrokeB:color(340,100,80),SweepAccentRatio:.33},9:{Ghost:!0,HyperGhost:!0,FixEdge:!0,FlowOrientation:0,CellsOnTop:window.$.isHyper,FadeCellFillFn:random([4,5]),FadeCellStrokeFn:random([0,1,2,3]),Pad:random([.05,.1,.15]),CellDivideCount:window.$.isHyper?8:random([1,2,4,8]),CellGridFillDir:0,CellGridStrokeDir:1,FlowRetrace:!window.$.isHyper,AreaWeight:window.$.isHyper?1.5:1,AreaCurve:window.$.isHyper?2:1.75,FlowBatches:window.$.isHyper?64:16,TwistBkgSize:0,TwistBkgCurve:0,Travel:window.$.isHyper?100:25,TwistBkg:0,TwistFlow:0,FlowWarp:1,BkgWarp:1,BkgFadeAmt:0,Vignette:!1,BkgFadeFn:0,CrayonTheme:window.$.isHyper?"Riptide":null,UseBkgCrayons:window.$.isHyper&&window.$.isMirage,UseBkgCrayonsMulti:!1,UseFlowCrayons:window.$.isHyper&&window.$.isMirage,UseCellBkgCrayons:!1,UseCellLineCrayons:!1,CellShakeScale:random(.4,.6),CellShakeStrength:random(.5,1),FlowOrientation:Math.floor(7*random()),BkgShakeScale:0,FlowShakeScale:0,NoiseTypeBkg:"Radial",NoiseTypeFlow:"Radial",CellHatchThresh:null,CellThreshDir:-1,CellLineRender:!0,LineVariance:"Random",BkgRender:!0,DimChance:random(.5,1),DimRange:[random(.1,.2),random(.4,1)],CellOptimize:!0,GlobalOffsetFlow:0,GlobalOffsetBkg:0,GlobalOffsetCell:0,BaseSize:256,LineThickness:window.$.isHyper?.001:random(5e-4,8e-4),Spacing:random(8e-4,.001),BkgColor:color(window.$.isHyper?P.Cardboard:random([P.Paper,P.White])),BkgGradient:!1,GradientBand:0,GradientBandOffset:0,ColorSweep:window.$.isHyper?color(0):color(P.Cardboard),ColorSweepAlt:color(0),ColorSweepAccent:color(0),ColorSweepAccentAlt:color(0),ColorBkgThinLine:color(0),ColorBkgThinLineColorThresh:1,ColorBkgLineFill:color(0),ColorCellLines:color((340+window.$.Shift)%360,100,40),ColorCellBkg:color(0),ColorCellOutline:color(100),FlowBatchSize:random([32,64]),CellZoom:.5,CellRamp:1.5,CellLineThickness:window.$.isHyper?random(1,1.5):1,CellLineSpacing:.002,CellThresh:random(3e-4,5e-4),CellHatch:!window.$.isHyper,BkgLineFillThresh:.0125,NoiseScale:random([.25,.5,.75]),NoiseStrength:random([2,3,4]),FlowScale:.25,FlowStrength:window.$.isHyper?2:3,FlowZ:window.$.isHyper?1e-7:2e-7,FlowCells:window.$.isHyper?32:64,FlowGradient:!1,FlowGradientBand:null,FlowGradientOffset:0,FlowGradientFn:"constant",FlowTravel:200,FlowSpeed:.001,FlowWeight:window.$.isHyper?.0015:.001,FlowRender:!1,CellRender:!0,BkgLineRamp:0,BkgCellHatchThresh:0,CellHasGradient:!0,CellGradientFillA:window.$.isHyper?window.$.isMirage?color(60,45,90):color(0,45,90):color(0),CellGradientFillB:window.$.isHyper?window.$.isMirage?color(340,90,90):color(280,90,90):color(0),CellGradientStrokeA:window.$.isHyper?window.$.isMirage?color(240,100,100):color(180,100,100):color(0),CellGradientStrokeB:window.$.isHyper?window.$.isMirage?color(320,100,80):color(260,100,80):color(P.Cardboard),SweepAccentRatio:.33,CellShakeScale:random(.25,.5),CellShakeStrength:.5,CellThresh:.001,CellsOnTop:!0,CellHatch:!1,FlowCells:40,CellOutlineWeight:window.$.isHyper&&window.$.isMirage?75e-5:65e-5,FlowZ:1e-7,BkgShakeScale:.01,BkgShakeStrength:.5,LineVariance:"None",FlowRender:!1,AreaWeight:1.5,...window.$.isHyper?{CellHasGradient:!1,ColorCellOutline:color(hue(P.Cardboard),saturation(P.Cardboard),.5*brightness(P.Cardboard)),ColorCellBkg:color(P.Cardboard),BkgColor:color(P.Cardboard),ColorCellLines:color(0),FlowScale:3,FlowStrength:5,BkgShakeStrength:0,CellHasGradient:!window.$.isMirage,CellZoom:2,CellRamp:2,CellLineThickness:1.25,CellLineSpacing:window.$.isMirage?.004:.002,CellDivideCount:window.$.isMirage?4:2,ColorCellOutline:color(0)}:{CellHasGradient:!1,ColorCellOutline:color(window.$.isMirage?P.Cardboard:8),ColorCellBkg:color(window.$.isMirage?8:P.Cardboard),BkgColor:color(P.Cardboard),ColorCellLines:color(window.$.isMirage?P.Cardboard:8),FlowScale:3,FlowStrength:.75,CellDivideCount:2}}}),window.$=(()=>{const e=W[window.$styles[window.$.Style].CrayonTheme]??[];if(window.$.Palette=e.map((e=>P[e])),Q(window.$.Palette),window.$.GhostWeight=window.$styles[window.$.Style].GhostWeight,window.$.GhostInvert=window.$styles[window.$.Style].GhostInvert,window.$.Ghost=window.$styles[window.$.Style].Ghost,window.$.HyperGhost=window.$styles[window.$.Style].HyperGhost,window.$.StreamFactor=window.$styles[window.$.Style].StreamFactor,window.$.StreamThresh=window.$styles[window.$.Style].StreamThresh,window.$.BkgGradientShift=window.$styles[window.$.Style].BkgGradientShift,w
i=new T:void 0,n=this._clip(e);if(null===n||!n.length)return;i.moveTo(n[0],n[1]);let l=n.length;for(;n[0]===n[l-2]&&n[1]===n[l-1]&&l>1;)l-=2;for(let e=2;e<l;e+=2)n[e]===n[e-2]&&n[e+1]===n[e-1]||i.lineTo(n[e],n[e+1]);return i.closePath(),o&&o.value()}*cellPolygons(){const{delaunay:{points:e}}=this;for(let i=0,o=e.length/2;i<o;++i){const e=this.cellPolygon(i);e&&(e.index=i,yield e)}}cellPolygon(e){const i=new M;return this.renderCell(e,i),i.value()}_renderSegment(e,i,o,n,l){let t;const r=this._regioncode(e,i),w=this._regioncode(o,n);0===r&&0===w?(l.moveTo(e,i),l.lineTo(o,n)):(t=this._clipSegment(e,i,o,n,r,w))&&(l.moveTo(t[0],t[1]),l.lineTo(t[2],t[3]))}contains(e,i,o){return(i=+i)==i&&(o=+o)==o&&this.delaunay._step(e,i,o)===e}*neighbors(e){const i=this._clip(e);if(i)for(const o of this.delaunay.neighbors(e)){const e=this._clip(o);if(e)e:for(let n=0,l=i.length;n<l;n+=2)for(let t=0,r=e.length;t<r;t+=2)if(i[n]===e[t]&&i[n+1]===e[t+1]&&i[(n+2)%l]===e[(t+r-2)%r]&&i[(n+3)%l]===e[(t+r-1)%r]){yield o;break e}}}_cell(e){const{circumcenters:i,delaunay:{inedges:o,halfedges:n,triangles:l}}=this,t=o[e];if(-1===t)return null;const r=[];let w=t;do{const o=Math.floor(w/3);if(r.push(i[2*o],i[2*o+1]),w=w%3==2?w-2:w+1,l[w]!==e)break;w=n[w]}while(w!==t&&-1!==w);return r}_clip(e){if(0===e&&1===this.delaunay.hull.length)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];const i=this._cell(e);if(null===i)return null;const{vectors:o}=this,n=4*e;return this._simplify(o[n]||o[n+1]?this._clipInfinite(e,i,o[n],o[n+1],o[n+2],o[n+3]):this._clipFinite(e,i))}_clipFinite(e,i){const o=i.length;let n,l,t,r,w=null,s=i[o-2],a=i[o-1],d=this._regioncode(s,a),h=0;for(let c=0;c<o;c+=2)if(n=s,l=a,s=i[c],a=i[c+1],t=d,d=this._regioncode(s,a),0===t&&0===d)r=h,h=0,w?w.push(s,a):w=[s,a];else{let i,o,c,g,$;if(0===t){if(null===(i=this._clipSegment(n,l,s,a,t,d)))continue;[o,c,g,$]=i}else{if(null===(i=this._clipSegment(s,a,n,l,d,t)))continue;[g,$,o,c]=i,r=h,h=this._edgecode(o,c),r&&h&&this._edge(e,r,h,w,w.length),w?w.push(o,c):w=[o,c]}r=h,h=this._edgecode(g,$),r&&h&&this._edge(e,r,h,w,w.length),w?w.push(g,$):w=[g,$]}if(w)r=h,h=this._edgecode(w[0],w[1]),r&&h&&this._edge(e,r,h,w,w.length);else if(this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return w}_clipSegment(e,i,o,n,l,t){const r=l<t;for(r&&([e,i,o,n,l,t]=[o,n,e,i,t,l]);;){if(0===l&&0===t)return r?[o,n,e,i]:[e,i,o,n];if(l&t)return null;let w,s,a=l||t;8&a?(w=e+(o-e)*(this.ymax-i)/(n-i),s=this.ymax):4&a?(w=e+(o-e)*(this.ymin-i)/(n-i),s=this.ymin):2&a?(s=i+(n-i)*(this.xmax-e)/(o-e),w=this.xmax):(s=i+(n-i)*(this.xmin-e)/(o-e),w=this.xmin),l?(e=w,i=s,l=this._regioncode(e,i)):(o=w,n=s,t=this._regioncode(o,n))}}_clipInfinite(e,i,o,n,l,t){let r,w=Array.from(i);if((r=this._project(w[0],w[1],o,n))&&w.unshift(r[0],r[1]),(r=this._project(w[w.length-2],w[w.length-1],l,t))&&w.push(r[0],r[1]),w=this._clipFinite(e,w))for(let i,o=0,n=w.length,l=this._edgecode(w[n-2],w[n-1]);o<n;o+=2)i=l,l=this._edgecode(w[o],w[o+1]),i&&l&&(o=this._edge(e,i,l,w,o),n=w.length);else this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(w=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return w}_edge(e,i,o,n,l){for(;i!==o;){let o,t;switch(i){case 5:i=4;continue;case 4:i=6,o=this.xmax,t=this.ymin;break;case 6:i=2;continue;case 2:i=10,o=this.xmax,t=this.ymax;break;case 10:i=8;continue;case 8:i=9,o=this.xmin,t=this.ymax;break;case 9:i=1;continue;case 1:i=5,o=this.xmin,t=this.ymin}n[l]===o&&n[l+1]===t||!this.contains(e,o,t)||(n.splice(l,0,o,t),l+=2)}return l}_project(e,i,o,n){let l,t,r,w=1/0;if(n<0){if(i<=this.ymin)return null;(l=(this.ymin-i)/n)<w&&(r=this.ymin,t=e+(w=l)*o)}else if(n>0){if(i>=this.ymax)return null;(l=(this.ymax-i)/n)<w&&(r=this.ymax,t=e+(w=l)*o)}if(o>0){if(e>=this.xmax)return null;(l=(this.xmax-e)/o)<w&&(t=this.xmax,r=i+(w=l)*n)}else if(o<0){if(e<=this.xmin)return null;(l=(this.xmin-e)/o)<w&&(t=this.xmin,r=i+(w=l)*n)}return[t,r]}_edgecode(e,i){return(e===this.xmin?1:e===this.xmax?2:0)|(i===this.ymin?4:i===this.ymax?8:0)}_regioncode(e,i){return(e<this.xmin?1:e>this.xmax?2:0)|(i<this.ymin?4:i>this.ymax?8:0)}_simplify(e){if(e&&e.length>4){for(let i=0;i<e.length;i+=2){const o=(i+2)%e.length,n=(i+4)%e.length;(e[i]===e[o]&&e[o]===e[n]||e[i+1]===e[o+1]&&e[o+1]===e[n+1])&&(e.splice(o,2),i-=2)}e.length||(e=null)}return e}}const H=2*Math.PI,v=Math.pow;function L(e){return e[0]}function _(e){return e[1]}function A(e,i,o){return[e+Math.sin(e+i)*o,i+Math.cos(e-i)*o]}class R{static from(e,i=L,o=_,n){return new R("length"in e?function(e,i,o,n){const l=e.length,t=new Float64Array(2*l);for(let r=0;r<l;++r){const l=e[r];t[2*r]=i.call(n,l,r,e),t[2*r+1]=o.call(n,l,r,e)}return t}(e,i,o,n):Float64Array.from(function*(e,i,o,n){let l=0;for(const t of e)yield i.call(n,t,l,e),yield o.call(n,t,l,e),++l}(e,i,o,n)))}constructor(e){this._delaunator=new p(e),this.inedges=new Int32Array(e.length/2),this._hullIndex=new Int32Array(e.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const e=this._delaunator,i=this.points;if(e.hull&&e.hull.length>2&&function(e){const{triangles:i,coords:o}=e;for(let e=0;e<i.length;e+=3){const n=2*i[e],l=2*i[e+1],t=2*i[e+2];if((o[t]-o[n])*(o[l+1]-o[n+1])-(o[l]-o[n])*(o[t+1]-o[n+1])>1e-10)return!1}return!0}(e)){this.collinear=Int32Array.from({length:i.length/2},((e,i)=>i)).sort(((e,o)=>i[2*e]-i[2*o]||i[2*e+1]-i[2*o+1]));const e=this.collinear[0],o=this.collinear[this.collinear.length-1],n=[i[2*e],i[2*e+1],i[2*o],i[2*o+1]],l=1e-8*Math.hypot(n[3]-n[1],n[2]-n[0]);for(let e=0,o=i.length/2;e<o;++e){const o=A(i[2*e],i[2*e+1],l);i[2*e]=o[0],i[2*e+1]=o[1]}this._delaunator=new p(i)}else delete this.collinear;const o=this.halfedges=this._delaunator.halfedges,n=this.hull=this._delaunator.hull,l=this.triangles=this._delaunator.triangles,t=this.inedges.fill(-1),r=this._hullIndex.fill(-1);for(let e=0,i=o.length;e<i;++e){const i=l[e%3==2?e-2:e+1];-1!==o[e]&&-1!==t[i]||(t[i]=e)}for(let e=0,i=n.length;e<i;++e)r[n[e]]=e;n.length<=2&&n.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=n[0],t[n[0]]=1,2===n.length&&(t[n[1]]=0,this.triangles[1]=n[1],this.triangles[2]=n[1]))}voronoi(e){return new G(this,e)}*neighbors(e){const{inedges:i,hull:o,_hullIndex:n,halfedges:l,triangles:t,collinear:r}=this;if(r){const i=r.indexOf(e);return i>0&&(yield r[i-1]),void(i<r.length-1&&(yield r[i+1]))}const w=i[e];if(-1===w)return;let s=w,a=-1;do{if(yield a=t[s],s=s%3==2?s-2:s+1,t[s]!==e)return;if(s=l[s],-1===s){const i=o[(n[e]+1)%o.length];return void(i!==a&&(yield i))}}while(s!==w)}find(e,i,o=0){if((e=+e)!=e||(i=+i)!=i)return-1;const n=o;let l;for(;(l=this._step(o,e,i))>=0&&l!==o&&l!==n;)o=l;return l}_step(e,i,o){const{inedges:n,hull:l,_hullIndex:t,halfedges:r,triangles:w,points:s}=this;if(-1===n[e]||!s.length)return(e+1)%(s.length>>1);let a=e,d=v(i-s[2*e],2)+v(o-s[2*e+1],2);const h=n[e];let c=h;do{let n=w[c];const h=v(i-s[2*n],2)+v(o-s[2*n+1],2);if(h<d&&(d=h,a=n),c=c%3==2?c-2:c+1,w[c]!==e)break;if(c=r[c],-1===c){if(c=l[(t[e]+1)%l.length],c!==n&&v(i-s[2*c],2)+v(o-s[2*c+1],2)<d)return c;break}}while(c!==h);return a}render(e){const i=null==e?e=new T:void 0,{points:o,halfedges:n,triangles:l}=this;for(let i=0,t=n.length;i<t;++i){const t=n[i];if(t<i)continue;const r=2*l[i],w=2*l[t];e.moveTo(o[r],o[r+1]),e.lineTo(o[w],o[w+1])}return this.renderHull(e),i&&i.value()}renderPoints(e,i){void 0!==i||e&&"function"==typeof e.moveTo||(i=e,e=null),i=null==i?2:+i;const o=null==e?e=new T:void 0,{points:n}=this;for(let o=0,l=n.length;o<l;o+=2){const l=n[o],t=n[o+1];e.moveTo(l+i,t),e.arc(l,t,i,0,H)}return o&&o.value()}renderHull(e){const i=null==e?e=new T:void 0,{hull:o,points:n}=this,l=2*o[0],t=o.length;e.moveTo(n[l],n[l+1]);for(let i=1;i<t;++i){const l=2*o[i];e.lineTo(n[l],n[l+1])}return e.closePath(),i&&i.value()}hullPolygon(){const e=new M;return this.renderHull(e),e.value()}renderTriangle(e,i){const o=null==i?i=new T:void 0,{points:n,triangles:l}=this,t=2*l[e*=3],r=2*l[e+1],w=2*l[e+2];return i.moveTo(n[t],n[t+1]),i.lineTo(n[r],n[r+1]),i.lineTo(n[w],n[w+1]),i.closePath(),o&&o.value()}*trianglePolygons(){const{triangles:e}=this;for(let i=0,o=e.length/3;i<o;++i)yield this.trianglePolygon(i)}trianglePolygon(e){const i=new M;return this.renderTriangle(e,i),i.value()}}var b=o(187),O=o.n(b);const z=JSON.parse('{"0":[{"Mode":"Light","Palette":"Bloom"},{"Mode":"Light","Palette":"Bloom"}],"1":[{"Mode":"Light","Palette":"Crayon"},{"Mode":"Dark","Palette":"Sketch"}],"2":[{"Mode":"Dark","Palette":"Marine"},{"Mode":"Dark","Palette":"RGB"}],"3":[{"Mode":"Dark","Palette":"Riptide"},{"Mode":"Dark","Palette":"Riptide"}],"4":[{"Mode":"Light","Palette":"Phoenix"},{"Mode":"Dark","Palette":"Phoenix"}],"5":[{"Mode":"Dark","Palette":"RGB"},{"Mode":"Dark","Palette":"RGB"}],"6":[{"Mode":"Light","Palette":"Crayon"},{"Mode":"Dark","Palette":"Crayon"}],"7":[{"Mode":"Dark","Palette":"Mint"},{"Mode":"Dark","Palette":"RGB"}],"8":[{"Mode":"Light","Palette":"Carnival"},{"Mode":"Dark","Palette":"Carnival"}],"9":[{"Mode":"Light","Palette":"Sketch"},{"Mode":"Light","Palette":"Sketch"}]}'),P=JSON.parse('{"Paper":"#fff5eb","Cardboard":"#eee5d8","White":"#fff","Black":"#000","Teal":"#60cab6","Yellow":"#fabf0f","Yellow2":"#EEC61F","Blue":"#1a3966","Red":"#bf2640","Carnival1":"#f0c54a","Carnival2":"#e590a2","Carnival3":"#4d9cd0","Carnival4":"#dd5b44","Carnival5":"#61b8a3","Carnival6":"#221f20","Riptide1":"#d52c52","Riptide2":"#342720","Riptide3":"#0a202c","Riptide4":"#37709d","Riptide5":"#aea09d","Riptide6":"#233a3d"}'),W=JSON.parse('{"Monochrome":["Paper","White","Black"],"Crayon":["Paper","White","Black","Teal","Yellow","Blue","Red"],"Carnival":["Carnival1","Carnival2","Carnival3","Carnival4","Carnival5","Carnival6"],"Red":["Red","White","Black"],"Riptide":["Riptide1","Riptide2","Riptide3","Riptide4","Riptide5","Riptide6"]}');function U(){const e=window.$.isHyper?[P.Black]:random([[P.Red],[P.Yellow],[P.Blue],[P.Teal,P.Blue],[P.Blue,P.Teal],[P.Teal,P.Black],[P.Red,P.Black]]);return{FixEdge:!0,FlowOrientation:window.$.isHyper&&window.$.isMirage?Math.floor(7*random()):0,CellsOnTop:window.$.isHyper||window.$.isMirage,FadeCellFillFn:4,FadeCellStrokeFn:0,Pad:random([.05,.1,.2]),AreaWeight:0,AreaCurve:1.75,FlowBatches:64,TwistBkgSize:1,TwistBkgCurve:0,CellDivideCount:2,Travel:random(500,2500),TwistBkg:0,TwistFlow:0,FlowWarp:1,BkgWarp:1,BkgFadeAmt:0,BkgFadeFn:0,CrayonTheme:"Crayon",UseBkgCrayons:!1,UseBkgCrayonsMulti:!0,UseFlowCrayons:!1,UseCellBkgCrayons:!0,UseCellLineCrayons:!0,CellShakeScale:window.$.isMirage?.25:0,CellShakeStrength:window.$.isMirage?.5:0,BkgShakeScale:.025,BkgShakeStrength:.8,FlowShakeScale:0,NoiseTypeBkg:"Radial",NoiseTypeFlow:"Radial",CellHatchThresh:null,CellThreshDir:window.$.isMirage?1:-1,CellLineRender:!0,LineVariance:"Random",BkgRender:!0,CellOutlineWeight:.001,DimChance:.5,DimRange:[.2,.8],CellOptimize:!0,GlobalOffsetFlow:0,GlobalOffsetBkg:0,GlobalOffsetCell:0,BaseSize:256,LineThickness:random(5e-4,.05),Spacing:random(.002,.002),BkgColor:color(window.$.isHyper?random([P.Riptide1,P.Riptide4]):random([P.Paper,P.Cardboard])),BkgGradient:!1,GradientBand:0,GradientBandOffset:0,ColorSweep:color(e[0]),ColorSweepAlt:color(e[1%e.length]),ColorSweepAccent:color(e[0]),ColorSweepAccentAlt:color(e[0]),ColorBkgThinLine:color(0),ColorBkgThinLineColorThresh:1,ColorBkgLineFill:color(0),ColorCellLines:color(340,100,40),ColorCellBkg:color(0),ColorCellOutline:window.$.isHyper?color(0):color(100),FlowBatchSize:20,CellZoom:2,CellRamp:1,CellLineThickness:1,CellLineSpacing:.002,CellThresh:25e-5,CellHatch:random([!0,!1]),BkgLineFillThresh:.005,NoiseScale:7,NoiseStrength:3,FlowScale:.25,FlowStrength:8,FlowZ:1e-7,FlowCells:64,FlowGradient:!1,FlowGradientBand:null,FlowGradientOffset:0,FlowGradientFn:"constant",FlowSpeed:.001,FlowWeight:.001,FlowRender:!0,CellRender:!0,BkgLineRamp:0,BkgCellHatchThresh:0,CellHasGradient:!0,CellGradientFillA:color(180,10,100),CellGradientFillB:color(200,10,100),CellGradientStrokeA:color(180,100,100),CellGradientStrokeB:color(200,100,100),SweepAccentRatio:.33}}let D,N,Z,I,V,E;window.$={},window.$f={},window.$styles={};let q=0,K=0,j=0;const Y=new t;function J(e,i,o,n,l){const t=dist(e,i,0,0),r=constrain(t/o,0,1);return t*n*Math.pow(r,l)}D=~~(1e9*Y.random_dec());const Q=e=>{for(let i=e.length-1;i>0;i--){const o=Math.floor(random()*(i+1)),n=e[i];e[i]=e[o],e[o]=n}},X=(e,i=10)=>{const o=color(e?window.$.Palette[e%window.$.Palette.length]:random(window.$.Palette));return"RGB"===window.$.CrayonTheme?color(360*random(),100,100):color(hue(o),saturation(o),brightness(o)+random(-i,i))};function ee(e){let i=0,o=0;const n=e.length;for(let l=0;l<n;l++)i+=e[l][0],o+=e[l][1];return[i/n,o/n]}function ie(e){let i=0,o=e.length-1;for(let n=0;n<e.length;n++)i+=(e[o][0]+e[n][0])*(e[o][1]-e[n][1]),o=n;return Math.abs(i/2)}function oe(e){const i=e.length;let o=0,n=0;for(let l=0,t=i-1;l<i;t=l++){const i=dist(e[l][0],e[l][1],e[t][0],e[t][1]);i>o&&(o=i,n=atan2(e[t][1]-e[l][1],e[t][0]-e[l][0]))}return n}const ne=(e,i,o,n=0,l=0)=>{noStroke(),fill(color((hue(i)+l)%360,saturation(i),brightness(i)));const t=window.$.FlowGradientFn??random(["lighten","darken","constant"]),r=e.length,w=window.$.BaseSize,s=width/w*w,a=height/w*w;for(let i=0;i<r;i++){const[w,d]=e[i];if(n){const e=i/r;fill(color((360*e*n+l)%360,100,"lighten"===t?100*(1-e):"darken"===t?100*e:100))}circle(w*s,d*a,o*s)}},le=()=>{randomSeed(D),noiseSeed(D)},te=()=>~~(1*window.$.BaseSize),re=()=>{I=Array(te()).fill().map((()=>Array(te()).fill(0)))};function we(e,i){const o=e[0],n=1-o,l=e[1],t=1-l,r=o*l,w=n*t;switch("fill"===i?window.$.FadeCellFillFn:window.$.FadeCellStrokeFn){case 0:return o;case 1:return l;case 2:return n;case 3:return t;case 4:return r;case 5:return w}return r}window.setup=()=>{le(),N=function(o=Math.random){const l=function(e){const i=new Uint8Array(512);for(let e=0;e<256;e++)i[e]=e;for(let o=0;o<255;o++){const n=o+~~(e()*(256-o)),l=i[o];i[o]=i[n],i[n]=l}for(let e=256;e<512;e++)i[e]=i[e-256];return i}(o),t=new Float64Array(l).map((e=>n[e%12*3])),r=new Float64Array(l).map((e=>n[e%12*3+1])),w=new Float64Array(l).map((e=>n[e%12*3+2]));return function(o,n,s){let a,d,h,c;const g=.3333333333333333*(o+n+s),$=i(o+g),C=i(n+g),y=i(s+g),p=($+C+y)*e,u=o-($-p),f=n-(C-p),S=s-(y-p);let k,F,m,B,x,T;u>=f?f>=S?(k=1,F=0,m=0,B=1,x=1,T=0):u>=S?(k=1,F=0,m=0,B=1,x=0,T=1):(k=0,F=0,m=1,B=1,x=0,T=1):f<S?(k=0,F=0,m=1,B=0,x=1,T=1):u<S?(k=0,F=1,m=0,B=0,x=1,T=1):(k=0,F=1,m=0,B=1,x=1,T=0);const M=u-k+e,G=f-F+e,H=S-m+e,v=u-B+2*e,L=f-x+2*e,_=S-T+2*e,A=u-1+.5,R=f-1+.5,b=S-1+.5,O=255&$,z=255&C,P=255&y;let W=.6-u*u-f*f-S*S;if(W<0)a=0;else{const e=O+l[z+l[P]];W*=W,a=W*W*(t[e]*u+r[e]*f+w[e]*S)}let U=.6-M*M-G*G-H*H;if(U<0)d=0;else{const e=O+k+l[z+F+l[P+m]];U*=U,d=U*U*(t[e]*M+r[e]*G+w[e]*H)}let D=.6-v*v-L*L-_*_;if(D<0)h=0;else{const e=O+B+l[z+x+l[P+T]];D*=D,h=D*D*(t[e]*v+r[e]*L+w[e]*_)}let N=.6-A*A-R*R-b*b;if(N<0)c=0;else{const e=O+1+l[z+1+l[P+1]];N*=N,c=N*N*(t[e]*A+r[e]*R+w[e]*b)}return 32*(a+d+h+c)}}(random);const[o,l]=pe(1,windowWidth,windowHeight);createCanvas(o,l),pixelDensity(2),re(),window.$f=(()=>{const e=new t;window.$={},window.$.Seed=D,window.$.Style=e.random_int(0,9),window.$.isHyper=e.random_bool(.4),window.$.isMirage=e.random_bool(.3),window.$.Shift=random(-15,15),window.$.ShiftLargest=random([60,165,260,340]);const i=z[window.$.Style][Number(window.$.isHyper)];return 0===window.$.Style&&!window.$.isHyper&&window.$.isMirage&&(i.Mode="Dark"),2===window.$.Style&&!window.$.isHyper&&window.$.isMirage&&(i.Palette="Dragon"),9===window.$.Style&&window.$.isMirage&&!window.$.isHyper&&(i.Mode="Dark"),window.$.isHyper&&window.$.isMirage?i.Type="HyperMirage":window.$.isHyper?i.Type="Hyper":window.$.isMirage?i.Type="Mirage":i.Type="Elemental",i})(),window.$styles=(colorMode(HSB,360,100,100,100),{0:{FlowOrientation:0,FadeCellFillFn:4,FadeCellStrokeFn:0,Pad:random([.05,.1]),AreaWeight:0,AreaCurve:1.75,FlowBatches:64,TwistBkgSize:1,TwistBkgCurve:0,Travel:250,TwistBkg:0,TwistFlow:0,FlowWarp:random([.5,1,2]),BkgWarp:random([.5,1,2]),BkgFadeAmt:0,Vignette:window.$.isMirage,BkgFadeFn:0,CrayonTheme:null,UseBkgCrayons:!1,UseBkgCrayonsMulti:!1,UseFlowCrayons:!1,UseCellBkgCrayons:!1,UseCellLineCrayons:!1,CellShakeScale:0,BkgShakeScale:0,FlowShakeScale:0,NoiseTypeBkg:window.$.isMirage?"Radial":random(["Linear","Radial"]),NoiseTypeFlow:"Radial",CellHatchThresh:null,CellThreshDir:1,CellLineRender:!0,LineVariance:"Random",BkgRender:!0,CellOutlineWeight:5e-4,DimChance:random(.5,1),DimRange:[random(.1,.2),random(.4,1)],CellOptimize:!0,GlobalOffsetFlow:0,GlobalOffsetBkg:0,GlobalOffsetCell:0,BaseSize:window.$.isHyper?500:random(256,320),LineThickness:window.$.isHyper?4e-4:.001,Spacing:window.$.isHyper||window.$.isMirage?.001:random(.0025,.005),BkgColor:window.$.isMirage?color(190+random(0,10),random(50,90),random(87,95)):color(window.$.isHyper?P.Cardboard:P.Paper),BkgGradient:window.$.isHyper&&window.$.isMirage,GradientBand:window.$.isMirage&&window.$.isHyper?random([180,360,540,720]):0,GradientBandOffset:window.$.isMirage&&window.$.isHyper?360:null,ColorSweep:window.$.isMirage&&!window.$.isHyper?color(0):color((200+window.$.Shift)%360,100,100),ColorSweepAlt:color(0),ColorSweepAccent:color((180+window.$.Shift)%360,80,80),ColorSweepAccentAlt:color((180+window.$.Shift)%360,80,80),ColorBkgThinLine:color(16),ColorBkgThinLineColorThresh:1,ColorBkgLineFill:color(16),ColorCellLines:color((340+window.$.Shift)%360,100,40),ColorCellBkg:color(0),ColorCellOutline:color((0+window.$.Shift)%360,100,100),FlowBatchSize:64,CellZoom:random(1,3),CellRamp:random(1,2),CellLineThickness:1,CellLineSpacing:.002,CellThresh:window.$.isHyper?1e-4:25e-5,CellHatch:random([!1,!0]),BkgLineFillThresh:.0125,NoiseScale:random([.25,.5,.75]),NoiseStrength:random([2,3,4]),FlowScale:.25,FlowStrength:6,FlowZ:2e-7,FlowCells:64,FlowGradient:!1,FlowGradientBand:null,FlowGradientOffset:0,FlowGradientFn:"constant",FlowSpeed:4e-4,FlowWeight:8e-4,FlowRender:!0,CellRender:!0,BkgLineRamp:0,BkgCellHatchThresh:0,CellHasGradient:!0,CellGradientFillA:color((0+window.$.Shift)%360,45,90),CellGradientFillB:color((280+window.$.Shift)%360,90,90),CellGradientStrokeA:color((300+window.$.Shift)%360,100,100),CellGradientStrokeB:color((340+window.$.Shift)%360,100,80),SweepAccentRatio:.33,BkgGradientShift:0},1:{FixEdge:!0,FlowOrientation:Math.floor(7*random()),CellsOnTop:!0,FadeCellFillFn:4,FadeCellStrokeFn:0,CellDivideCount:2,Pad:random([.05,.1,.2]),AreaWeight:window.$.isHyper?window.$.isHyper&&window.$.isMirage:0,AreaCurve:1.75,FlowBatches:16,TwistBkgSize:1,TwistBkgCurve:0,Travel:1e3,TwistBkg:0,TwistFlow:0,FlowWarp:random([.5,1,2]),BkgWarp:random([.5,1,2]),BkgFadeAmt:0,Vignette:!0,BkgFadeFn:1,CrayonTheme:window.$.isHyper?"Monochrome":"Crayon",UseBkgCrayons:!0,UseBkgCrayonsMulti:window.$.isMirage,UseFlowCrayons:!(window.$.isHyper&&window.$.isMirage),UseCellBkgCrayons:window.$.isMirage&&!window.$.isHyper,UseCellLineCrayons:!0,CellShakeScale:.1,BkgShakeScale:random(8,12),BkgShakeStrength:window.$.isHyper?random([0,10,50]):null,FlowShakeScale:0,NoiseTypeBkg:random(["Linear","Radial"]),NoiseTypeFlow:"Radial",CellHatchThresh:0,CellThreshDir:1,CellLineRender:!0,LineVariance:"Random",BkgRender:!(window.$.isHyper&&window.$.isMirage),CellOutlineWeight:(window.$.isHyper,.001),DimChance:random(.5,1),DimRange:[random(.1,.2),random(.4,1)],CellOptimize:!0,GlobalOffsetFlow:0,GlobalOffsetBkg:0,GlobalOffsetCell:0,BaseSize:~~random(500,1500),LineThickness:random(.001,.002)*random([10,15,20]),Spacing:.005,BkgColor:color(window.$.isHyper?window.$.isMirage?color(0):color(20,4,90):window.$.isMirage?random([P.Yellow,P.Red,P.Teal]):random([P.Cardboard,P.Paper])),BkgGradient:!1,GradientBand:0,GradientBandOffset:0,ColorSweep:color(window.$.isHyper&&window.$.isMirage?32:P.Blue),ColorSweepAlt:color(color(window.$.isHyper&&window.$.isMirage?64:0)),ColorSweepAccent:color(window.$.isHyper&&window.$.isMirage?50:P.Blue),ColorSweepAccentAlt:color(0),ColorBkgThinLine:color(0),ColorBkgThinLineColorThresh:1,ColorBkgLineFill:color(0),ColorCellLines:color((340+window.$.Shift)%360,100,40),ColorCellBkg:color(window.$.isHyper||window.$.isMirage?0:P.Cardboard),ColorCellOutline:window.$.isHyper?window.$.isMirage?color(100):color(P.Cardboard):color(P.Blue),FlowBatchSize:window.$.isHyper?32:64,CellZoom:random(1,3),CellRamp:random(1,2),CellLineThickness:1.5,CellLineSpacing:.00
/*! For license information please see bundle.js.LICENSE.txt */ (()=>{"use strict";var e={187:e=>{function i(e,i,n){n=n||2;var t,r,w,s,h,c,$,C=i&&i.length,y=C?i[0]*n:e.length,p=o(e,0,y,n,!0),u=[];if(!p||p.next===p.prev)return u;if(C&&(p=function(e,i,n,l){var t,r,w,s=[];for(t=0,r=i.length;t<r;t++)(w=o(e,i[t]*l,t<r-1?i[t+1]*l:e.length,l,!1))===w.next&&(w.steiner=!0),s.push(g(w));for(s.sort(a),t=0;t<s.length;t++)n=d(s[t],n);return n}(e,i,p,n)),e.length>80*n){t=w=e[0],r=s=e[1];for(var f=n;f<y;f+=n)(h=e[f])<t&&(t=h),(c=e[f+1])<r&&(r=c),h>w&&(w=h),c>s&&(s=c);$=0!==($=Math.max(w-t,s-r))?32767/$:0}return l(p,u,n,t,r,$,0),u}function o(e,i,o,n,l){var t,r;if(l===T(e,i,o,n)>0)for(t=i;t<o;t+=n)r=m(t,e[t],e[t+1],r);else for(t=o-n;t>=i;t-=n)r=m(t,e[t],e[t+1],r);return r&&p(r,r.next)&&(B(r),r=r.next),r}function n(e,i){if(!e)return e;i||(i=e);var o,n=e;do{if(o=!1,n.steiner||!p(n,n.next)&&0!==y(n.prev,n,n.next))n=n.next;else{if(B(n),(n=i=n.prev)===n.next)break;o=!0}}while(o||n!==i);return i}function l(e,i,o,a,d,h,g){if(e){!g&&h&&function(e,i,o,n){var l=e;do{0===l.z&&(l.z=c(l.x,l.y,i,o,n)),l.prevZ=l.prev,l.nextZ=l.next,l=l.next}while(l!==e);l.prevZ.nextZ=null,l.prevZ=null,function(e){var i,o,n,l,t,r,w,s,a=1;do{for(o=e,e=null,t=null,r=0;o;){for(r++,n=o,w=0,i=0;i<a&&(w++,n=n.nextZ);i++);for(s=a;w>0||s>0&&n;)0!==w&&(0===s||!n||o.z<=n.z)?(l=o,o=o.nextZ,w--):(l=n,n=n.nextZ,s--),t?t.nextZ=l:e=l,l.prevZ=t,t=l;o=n}t.nextZ=null,a*=2}while(r>1)}(l)}(e,a,d,h);for(var $,C,y=e;e.prev!==e.next;)if($=e.prev,C=e.next,h?r(e,a,d,h):t(e))i.push($.i/o|0),i.push(e.i/o|0),i.push(C.i/o|0),B(e),e=C.next,y=C.next;else if((e=C)===y){g?1===g?l(e=w(n(e),i,o),i,o,a,d,h,2):2===g&&s(e,i,o,a,d,h):l(n(e),i,o,a,d,h,1);break}}}function t(e){var i=e.prev,o=e,n=e.next;if(y(i,o,n)>=0)return!1;for(var l=i.x,t=o.x,r=n.x,w=i.y,s=o.y,a=n.y,d=l<t?l<r?l:r:t<r?t:r,h=w<s?w<a?w:a:s<a?s:a,c=l>t?l>r?l:r:t>r?t:r,g=w>s?w>a?w:a:s>a?s:a,C=n.next;C!==i;){if(C.x>=d&&C.x<=c&&C.y>=h&&C.y<=g&&$(l,w,t,s,r,a,C.x,C.y)&&y(C.prev,C,C.next)>=0)return!1;C=C.next}return!0}function r(e,i,o,n){var l=e.prev,t=e,r=e.next;if(y(l,t,r)>=0)return!1;for(var w=l.x,s=t.x,a=r.x,d=l.y,h=t.y,g=r.y,C=w<s?w<a?w:a:s<a?s:a,p=d<h?d<g?d:g:h<g?h:g,u=w>s?w>a?w:a:s>a?s:a,f=d>h?d>g?d:g:h>g?h:g,S=c(C,p,i,o,n),k=c(u,f,i,o,n),F=e.prevZ,m=e.nextZ;F&&F.z>=S&&m&&m.z<=k;){if(F.x>=C&&F.x<=u&&F.y>=p&&F.y<=f&&F!==l&&F!==r&&$(w,d,s,h,a,g,F.x,F.y)&&y(F.prev,F,F.next)>=0)return!1;if(F=F.prevZ,m.x>=C&&m.x<=u&&m.y>=p&&m.y<=f&&m!==l&&m!==r&&$(w,d,s,h,a,g,m.x,m.y)&&y(m.prev,m,m.next)>=0)return!1;m=m.nextZ}for(;F&&F.z>=S;){if(F.x>=C&&F.x<=u&&F.y>=p&&F.y<=f&&F!==l&&F!==r&&$(w,d,s,h,a,g,F.x,F.y)&&y(F.prev,F,F.next)>=0)return!1;F=F.prevZ}for(;m&&m.z<=k;){if(m.x>=C&&m.x<=u&&m.y>=p&&m.y<=f&&m!==l&&m!==r&&$(w,d,s,h,a,g,m.x,m.y)&&y(m.prev,m,m.next)>=0)return!1;m=m.nextZ}return!0}function w(e,i,o){var l=e;do{var t=l.prev,r=l.next.next;!p(t,r)&&u(t,l,l.next,r)&&k(t,r)&&k(r,t)&&(i.push(t.i/o|0),i.push(l.i/o|0),i.push(r.i/o|0),B(l),B(l.next),l=e=r),l=l.next}while(l!==e);return n(l)}function s(e,i,o,t,r,w){var s=e;do{for(var a=s.next.next;a!==s.prev;){if(s.i!==a.i&&C(s,a)){var d=F(s,a);return s=n(s,s.next),d=n(d,d.next),l(s,i,o,t,r,w,0),void l(d,i,o,t,r,w,0)}a=a.next}s=s.next}while(s!==e)}function a(e,i){return e.x-i.x}function d(e,i){var o=function(e,i){var o,n=i,l=e.x,t=e.y,r=-1/0;do{if(t<=n.y&&t>=n.next.y&&n.next.y!==n.y){var w=n.x+(t-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(w<=l&&w>r&&(r=w,o=n.x<n.next.x?n:n.next,w===l))return o}n=n.next}while(n!==i);if(!o)return null;var s,a=o,d=o.x,c=o.y,g=1/0;n=o;do{l>=n.x&&n.x>=d&&l!==n.x&&$(t<c?l:r,t,d,c,t<c?r:l,t,n.x,n.y)&&(s=Math.abs(t-n.y)/(l-n.x),k(n,e)&&(s<g||s===g&&(n.x>o.x||n.x===o.x&&h(o,n)))&&(o=n,g=s)),n=n.next}while(n!==a);return o}(e,i);if(!o)return i;var l=F(o,e);return n(l,l.next),n(o,o.next)}function h(e,i){return y(e.prev,e,i.prev)<0&&y(i.next,e,e.next)<0}function c(e,i,o,n,l){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-o)*l|0)|e<<8))|e<<4))|e<<2))|e<<1))|(i=1431655765&((i=858993459&((i=252645135&((i=16711935&((i=(i-n)*l|0)|i<<8))|i<<4))|i<<2))|i<<1))<<1}function g(e){var i=e,o=e;do{(i.x<o.x||i.x===o.x&&i.y<o.y)&&(o=i),i=i.next}while(i!==e);return o}function $(e,i,o,n,l,t,r,w){return(l-r)*(i-w)>=(e-r)*(t-w)&&(e-r)*(n-w)>=(o-r)*(i-w)&&(o-r)*(t-w)>=(l-r)*(n-w)}function C(e,i){return e.next.i!==i.i&&e.prev.i!==i.i&&!function(e,i){var o=e;do{if(o.i!==e.i&&o.next.i!==e.i&&o.i!==i.i&&o.next.i!==i.i&&u(o,o.next,e,i))return!0;o=o.next}while(o!==e);return!1}(e,i)&&(k(e,i)&&k(i,e)&&function(e,i){var o=e,n=!1,l=(e.x+i.x)/2,t=(e.y+i.y)/2;do{o.y>t!=o.next.y>t&&o.next.y!==o.y&&l<(o.next.x-o.x)*(t-o.y)/(o.next.y-o.y)+o.x&&(n=!n),o=o.next}while(o!==e);return n}(e,i)&&(y(e.prev,e,i.prev)||y(e,i.prev,i))||p(e,i)&&y(e.prev,e,e.next)>0&&y(i.prev,i,i.next)>0)}function y(e,i,o){return(i.y-e.y)*(o.x-i.x)-(i.x-e.x)*(o.y-i.y)}function p(e,i){return e.x===i.x&&e.y===i.y}function u(e,i,o,n){var l=S(y(e,i,o)),t=S(y(e,i,n)),r=S(y(o,n,e)),w=S(y(o,n,i));return l!==t&&r!==w||!(0!==l||!f(e,o,i))||!(0!==t||!f(e,n,i))||!(0!==r||!f(o,e,n))||!(0!==w||!f(o,i,n))}function f(e,i,o){return i.x<=Math.max(e.x,o.x)&&i.x>=Math.min(e.x,o.x)&&i.y<=Math.max(e.y,o.y)&&i.y>=Math.min(e.y,o.y)}function S(e){return e>0?1:e<0?-1:0}function k(e,i){return y(e.prev,e,e.next)<0?y(e,i,e.next)>=0&&y(e,e.prev,i)>=0:y(e,i,e.prev)<0||y(e,e.next,i)<0}function F(e,i){var o=new x(e.i,e.x,e.y),n=new x(i.i,i.x,i.y),l=e.next,t=i.prev;return e.next=i,i.prev=e,o.next=l,l.prev=o,n.next=o,o.prev=n,t.next=n,n.prev=t,n}function m(e,i,o,n){var l=new x(e,i,o);return n?(l.next=n.next,l.prev=n,n.next.prev=l,n.next=l):(l.prev=l,l.next=l),l}function B(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function x(e,i,o){this.i=e,this.x=i,this.y=o,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function T(e,i,o,n){for(var l=0,t=i,r=o-n;t<o;t+=n)l+=(e[r]-e[t])*(e[t+1]+e[r+1]),r=t;return l}e.exports=i,e.exports.default=i,i.deviation=function(e,i,o,n){var l=i&&i.length,t=l?i[0]*o:e.length,r=Math.abs(T(e,0,t,o));if(l)for(var w=0,s=i.length;w<s;w++){var a=i[w]*o,d=w<s-1?i[w+1]*o:e.length;r-=Math.abs(T(e,a,d,o))}var h=0;for(w=0;w<n.length;w+=3){var c=n[w]*o,g=n[w+1]*o,$=n[w+2]*o;h+=Math.abs((e[c]-e[$])*(e[g+1]-e[c+1])-(e[c]-e[g])*(e[$+1]-e[c+1]))}return 0===r&&0===h?0:Math.abs((h-r)/r)},i.flatten=function(e){for(var i=e[0][0].length,o={vertices:[],holes:[],dimensions:i},n=0,l=0;l<e.length;l++){for(var t=0;t<e[l].length;t++)for(var r=0;r<i;r++)o.vertices.push(e[l][t][r]);l>0&&(n+=e[l-1].length,o.holes.push(n))}return o}}},i={};function o(n){var l=i[n];if(void 0!==l)return l.exports;var t=i[n]={exports:{}};return e[n](t,t.exports,o),t.exports}o.n=e=>{var i=e&&e.__esModule?()=>e.default:()=>e;return o.d(i,{a:i}),i},o.d=(e,i)=>{for(var n in i)o.o(i,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o.o=(e,i)=>Object.prototype.hasOwnProperty.call(e,i),(()=>{Math.sqrt(3),Math.sqrt(3);const e=1/6,i=(Math.sqrt(5),Math.sqrt(5),e=>0|Math.floor(e)),n=new Float64Array([1,1,0,-1,1,0,1,-1,0,-1,-1,0,1,0,1,-1,0,1,1,0,-1,-1,0,-1,0,1,1,0,-1,1,0,1,-1,0,-1,-1]);class l{constructor(e,i,o,n,l){this.bounds={x:e,y:i,width:o,height:n},this.halfWidth=o/2,this.halfHeight=n/2,this.points=[],this.capacity=l,this.divided=!1}insert(e){return!!this.contains(e)&&(this.points.length<this.capacity?(this.points.push(e),!0):(this.divided||this.subdivide(),this.northeast.insert(e)||this.northwest.insert(e)||this.southeast.insert(e)||this.southwest.insert(e)))}subdivide(){const e=this.bounds.x,i=this.bounds.y;this.northeast=new l(e+this.halfWidth,i,this.halfWidth,this.halfHeight,this.capacity),this.northwest=new l(e,i,this.halfWidth,this.halfHeight,this.capacity),this.southeast=new l(e+this.halfWidth,i+this.halfHeight,this.halfWidth,this.halfHeight,this.capacity),this.southwest=new l(e,i+this.halfHeight,this.halfWidth,this.halfHeight,this.capacity),this.divided=!0}contains(e){const i=this.bounds.x,o=this.bounds.y,n=this.bounds.width,l=this.bounds.height;return e.x>=i&&e.x<i+n&&e.y>=o&&e.y<o+l}query(e,i=[]){if(!this.intersects(e))return i;for(let o of this.points)o.x>=e.x&&o.x<e.x+e.width&&o.y>=e.y&&o.y<e.y+e.height&&i.push(o);return this.divided&&(this.northeast.query(e,i),this.northwest.query(e,i),this.southeast.query(e,i),this.southwest.query(e,i)),i}intersects(e){const i=this.bounds.x,o=this.bounds.y,n=this.bounds.width,l=this.bounds.height;return!(e.x+e.width<i||e.x>i+n||e.y+e.height<o||e.y>o+l)}remove(e){if(!this.contains(e))return!1;const i=this.points.findIndex((i=>i.x===e.x&&i.y===e.y));return-1!==i?(this.points.splice(i,1),!0):!!this.divided&&(this.northeast.remove(e)||this.northwest.remove(e)||this.southeast.remove(e)||this.southwest.remove(e))}visit(e){const i=o=>{o.divided&&(i(o.northeast),i(o.northwest),i(o.southeast),i(o.southwest)),e(o)};i(this)}clear(){if(this.points=[],this.divided)for(const e of[this.northwest,this.northeast,this.southwest,this.southeast])e.clear();this.divided=!1}}class t{constructor(){this.useA=!1;let e=function(e){let i=parseInt(e.substr(0,8),16),o=parseInt(e.substr(8,8),16),n=parseInt(e.substr(16,8),16),l=parseInt(e.substr(24,8),16);return function(){i|=0,o|=0,n|=0,l|=0;let e=(i+o|0)+l|0;return l=l+1|0,i=o^o>>>9,o=n+(n<<3)|0,n=n<<21|n>>>11,n=n+e|0,(e>>>0)/4294967296}};this.prngA=new e(tokenData.hash.substr(2,32)),this.prngB=new e(tokenData.hash.substr(34,32));for(let e=0;e<1e6;e+=2)this.prngA(),this.prngB()}random_dec(){return this.useA=!this.useA,this.useA?this.prngA():this.prngB()}random_num(e,i){return e+(i-e)*this.random_dec()}random_int(e,i){return Math.floor(this.random_num(e,i+1))}random_bool(e){return this.random_dec()<e}random_choice(e){return e[this.random_int(0,e.length-1)]}}const r=134217729;function w(e,i,o,n,l){let t,r,w,s,a=i[0],d=n[0],h=0,c=0;d>a==d>-a?(t=a,a=i[++h]):(t=d,d=n[++c]);let g=0;if(h<e&&c<o)for(d>a==d>-a?(r=a+t,w=t-(r-a),a=i[++h]):(r=d+t,w=t-(r-d),d=n[++c]),t=r,0!==w&&(l[g++]=w);h<e&&c<o;)d>a==d>-a?(r=t+a,s=r-t,w=t-(r-s)+(a-s),a=i[++h]):(r=t+d,s=r-t,w=t-(r-s)+(d-s),d=n[++c]),t=r,0!==w&&(l[g++]=w);for(;h<e;)r=t+a,s=r-t,w=t-(r-s)+(a-s),a=i[++h],t=r,0!==w&&(l[g++]=w);for(;c<o;)r=t+d,s=r-t,w=t-(r-s)+(d-s),d=n[++c],t=r,0!==w&&(l[g++]=w);return 0===t&&0!==g||(l[g++]=t),g}function s(e){return new Float64Array(e)}const a=s(4),d=s(8),h=s(12),c=s(16),g=s(4);function $(e,i,o,n,l,t){const s=(i-t)*(o-l),$=(e-l)*(n-t),C=s-$;if(0===s||0===$||s>0!=$>0)return C;const y=Math.abs(s+$);return Math.abs(C)>=33306690738754716e-32*y?C:-function(e,i,o,n,l,t,s){let $,C,y,p,u,f,S,k,F,m,B,x,T,M,G,H,v,L;const _=e-l,A=o-l,R=i-t,b=n-t;M=_*b,f=r*_,S=f-(f-_),k=_-S,f=r*b,F=f-(f-b),m=b-F,G=k*m-(M-S*F-k*F-S*m),H=R*A,f=r*R,S=f-(f-R),k=R-S,f=r*A,F=f-(f-A),m=A-F,v=k*m-(H-S*F-k*F-S*m),B=G-v,u=G-B,a[0]=G-(B+u)+(u-v),x=M+B,u=x-M,T=M-(x-u)+(B-u),B=T-H,u=T-B,a[1]=T-(B+u)+(u-H),L=x+B,u=L-x,a[2]=x-(L-u)+(B-u),a[3]=L;let O=function(e,i){let o=i[0];for(let e=1;e<4;e++)o+=i[e];return o}(0,a),z=22204460492503146e-32*s;if(O>=z||-O>=z)return O;if(u=e-_,$=e-(_+u)+(u-l),u=o-A,y=o-(A+u)+(u-l),u=i-R,C=i-(R+u)+(u-t),u=n-b,p=n-(b+u)+(u-t),0===$&&0===C&&0===y&&0===p)return O;if(z=11093356479670487e-47*s+33306690738754706e-32*Math.abs(O),O+=_*p+b*$-(R*y+A*C),O>=z||-O>=z)return O;M=$*b,f=r*$,S=f-(f-$),k=$-S,f=r*b,F=f-(f-b),m=b-F,G=k*m-(M-S*F-k*F-S*m),H=C*A,f=r*C,S=f-(f-C),k=C-S,f=r*A,F=f-(f-A),m=A-F,v=k*m-(H-S*F-k*F-S*m),B=G-v,u=G-B,g[0]=G-(B+u)+(u-v),x=M+B,u=x-M,T=M-(x-u)+(B-u),B=T-H,u=T-B,g[1]=T-(B+u)+(u-H),L=x+B,u=L-x,g[2]=x-(L-u)+(B-u),g[3]=L;const P=w(4,a,4,g,d);M=_*p,f=r*_,S=f-(f-_),k=_-S,f=r*p,F=f-(f-p),m=p-F,G=k*m-(M-S*F-k*F-S*m),H=R*y,f=r*R,S=f-(f-R),k=R-S,f=r*y,F=f-(f-y),m=y-F,v=k*m-(H-S*F-k*F-S*m),B=G-v,u=G-B,g[0]=G-(B+u)+(u-v),x=M+B,u=x-M,T=M-(x-u)+(B-u),B=T-H,u=T-B,g[1]=T-(B+u)+(u-H),L=x+B,u=L-x,g[2]=x-(L-u)+(B-u),g[3]=L;const W=w(P,d,4,g,h);M=$*p,f=r*$,S=f-(f-$),k=$-S,f=r*p,F=f-(f-p),m=p-F,G=k*m-(M-S*F-k*F-S*m),H=C*y,f=r*C,S=f-(f-C),k=C-S,f=r*y,F=f-(f-y),m=y-F,v=k*m-(H-S*F-k*F-S*m),B=G-v,u=G-B,g[0]=G-(B+u)+(u-v),x=M+B,u=x-M,T=M-(x-u)+(B-u),B=T-H,u=T-B,g[1]=T-(B+u)+(u-H),L=x+B,u=L-x,g[2]=x-(L-u)+(B-u),g[3]=L;const U=w(W,h,4,g,c);return c[U-1]}(e,i,o,n,l,t,y)}s(4),s(4),s(4),s(4),s(4),s(4),s(4),s(4),s(4),s(8),s(8),s(8),s(4),s(8),s(8),s(8),s(12),s(192),s(192),s(4),s(4),s(4),s(4),s(4),s(4),s(4),s(4),s(8),s(8),s(8),s(8),s(8),s(8),s(8),s(8),s(8),s(4),s(4),s(4),s(8),s(16),s(16),s(16),s(32),s(32),s(48),s(64),s(1152),s(1152),s(4),s(4),s(4),s(4),s(4),s(4),s(4),s(4),s(4),s(4),s(24),s(24),s(24),s(24),s(24),s(24),s(24),s(24),s(24),s(24),s(1152),s(1152),s(1152),s(1152),s(1152),s(2304),s(2304),s(3456),s(5760),s(8),s(8),s(8),s(16),s(24),s(48),s(48),s(96),s(192),s(384),s(384),s(384),s(768),s(96),s(96),s(96),s(1152);const C=Math.pow(2,-52),y=new Uint32Array(512);class p{static from(e,i=m,o=B){const n=e.length,l=new Float64Array(2*n);for(let t=0;t<n;t++){const n=e[t];l[2*t]=i(n),l[2*t+1]=o(n)}return new p(l)}constructor(e){const i=e.length>>1;if(i>0&&"number"!=typeof e[0])throw new Error("Expected coords to contain numbers.");this.coords=e;const o=Math.max(2*i-5,0);this._triangles=new Uint32Array(3*o),this._halfedges=new Int32Array(3*o),this._hashSize=Math.ceil(Math.sqrt(i)),this._hullPrev=new Uint32Array(i),this._hullNext=new Uint32Array(i),this._hullTri=new Uint32Array(i),this._hullHash=new Int32Array(this._hashSize).fill(-1),this._ids=new Uint32Array(i),this._dists=new Float64Array(i),this.update()}update(){const{coords:e,_hullPrev:i,_hullNext:o,_hullTri:n,_hullHash:l}=this,t=e.length>>1;let r=1/0,w=1/0,s=-1/0,a=-1/0;for(let i=0;i<t;i++){const o=e[2*i],n=e[2*i+1];o<r&&(r=o),n<w&&(w=n),o>s&&(s=o),n>a&&(a=n),this._ids[i]=i}const d=(r+s)/2,h=(w+a)/2;let c,g,y,p=1/0;for(let i=0;i<t;i++){const o=u(d,h,e[2*i],e[2*i+1]);o<p&&(c=i,p=o)}const f=e[2*c],F=e[2*c+1];p=1/0;for(let i=0;i<t;i++){if(i===c)continue;const o=u(f,F,e[2*i],e[2*i+1]);o<p&&o>0&&(g=i,p=o)}let m=e[2*g],B=e[2*g+1],x=1/0;for(let i=0;i<t;i++){if(i===c||i===g)continue;const o=S(f,F,m,B,e[2*i],e[2*i+1]);o<x&&(y=i,x=o)}let T=e[2*y],M=e[2*y+1];if(x===1/0){for(let i=0;i<t;i++)this._dists[i]=e[2*i]-e[0]||e[2*i+1]-e[1];k(this._ids,this._dists,0,t-1);const i=new Uint32Array(t);let o=0;for(let e=0,n=-1/0;e<t;e++){const l=this._ids[e];this._dists[l]>n&&(i[o++]=l,n=this._dists[l])}return this.hull=i.subarray(0,o),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if($(f,F,m,B,T,M)<0){const e=g,i=m,o=B;g=y,m=T,B=M,y=e,T=i,M=o}const G=function(e,i,o,n,l,t){const r=o-e,w=n-i,s=l-e,a=t-i,d=r*r+w*w,h=s*s+a*a,c=.5/(r*a-w*s);return{x:e+(a*d-w*h)*c,y:i+(r*h-s*d)*c}}(f,F,m,B,T,M);this._cx=G.x,this._cy=G.y;for(let i=0;i<t;i++)this._dists[i]=u(e[2*i],e[2*i+1],G.x,G.y);k(this._ids,this._dists,0,t-1),this._hullStart=c;let H=3;o[c]=i[y]=g,o[g]=i[c]=y,o[y]=i[g]=c,n[c]=0,n[g]=1,n[y]=2,l.fill(-1),l[this._hashKey(f,F)]=c,l[this._hashKey(m,B)]=g,l[this._hashKey(T,M)]=y,this.trianglesLen=0,this._addTriangle(c,g,y,-1,-1,-1);for(let t,r,w=0;w<this._ids.length;w++){const s=this._ids[w],a=e[2*s],d=e[2*s+1];if(w>0&&Math.abs(a-t)<=C&&Math.abs(d-r)<=C)continue;if(t=a,r=d,s===c||s===g||s===y)continue;let h=0;for(let e=0,i=this._hashKey(a,d);e<this._hashSize&&(h=l[(i+e)%this._hashSize],-1===h||h===o[h]);e++);h=i[h];let p,u=h;for(;p=o[u],$(a,d,e[2*u],e[2*u+1],e[2*p],e[2*p+1])>=0;)if(u=p,u===h){u=-1;break}if(-1===u)continue;let f=this._addTriangle(u,s,o[u],-1,-1,n[u]);n[s]=this._legalize(f+2),n[u]=f,H++;let S=o[u];for(;p=o[S],$(a,d,e[2*S],e[2*S+1],e[2*p],e[2*p+1])<0;)f=this._addTriangle(S,s,p,n[s],-1,n[S]),n[s]=this._legalize(f+2),o[S]=S,H--,S=p;if(u===h)for(;p=i[u],$(a,d,e[2*p],e[2*p+1],e[2*u],e[2*u+1])<0;)f=this._addTriangle(p,s,u,-1,n[u],n[p]),this._legalize(f+2),n[p]=f,o[u]=u,H--,u=p;this._hullStart=i[s]=u,o[u]=i[S]=s,o[s]=S,l[this._hashKey(a,d)]=s,l[this._hashKey(e[2*u],e[2*u+1])]=u}this.hull=new Uint32Array(H);for(let e=0,i=this._hullStart;e<H;e++)this.hull[e]=i,i=o[i];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(e,i){return Math.floor(function(e,i){const o=e/(Math.abs(e)+Math.abs(i));return(i>0?3-o:1+o)/4}(e-this._cx,i-this._cy)*this._hashSize)%this._hashSize}_legalize(e){const{_triangles:i,_halfedges:o,coords:n}=this;let l=0,t=0;for(;;){const r=o[e],w=e-e%3;if(t=w+(e+2)%3,-1===r){if(0===l)break;e=y[--l];continue}const s=r-r%3,a=w+(e+1)%3,d=s+(r+2)%3,h=i[t],c=i[e],g=i[a],$=i[d];if(f(n[2*h],n[2*h+1],n[2*c],n[2*c+1],n[2*g],n[2*g+1],n[2*$],n[2*$+1])){i[e]=$,i[r]=h;const n=o[d];if(-1===n){let i=this._hullStart;do{if(this._hullTri[i]===d){this._hullTri[i]=e;break}i=this._hullPrev[i]}while(i!==this._hullStart)}this._link(e,n),this._link(r,o[t]),this._link(t,d);const w=s+(r+1)%3;l<y.length&&(y[l++]=w)}else{if(0===l)break;e=y[--l]}}return t}_link(e,i){this._halfedges[e]=i,-1!==i&&(this._halfedges[i]=e)}_addTriangle(e,i,o,n,l,t){const r=this.trianglesLen;return this._triangles[r]=e,this._triangles[r+1]=i,this._triangles[r+2]=o,this._link(r,n),this._link(r+1,l),this._link(r+2,t),this.trianglesLen+=3,r}}function u(e,i,o,n){const l=e-o,t=i-n;return l*l+t*t}function f(e,i,o,n,l,t,r,w){const s=e-r,a=i-w,d=o-r,h=n-w,c=l-r,g=t-w,$=d*d+h*h,C=c*c+g*g;return s*(h*C-$*g)-a*(d*C-$*c)+(s*s+a*a)*(d*g-h*c)<0}function S(e,i,o,n,l,t){const r=o-e,w=n-i,s=l-e,a=t-i,d=r*r+w*w,h=s*s+a*a,c=.5/(r*a-w*s),g=(a*d-w*h)*c,$=(r*h-s*d)*c;return g*g+$*$}function k(e,i,o,n){if(n-o<=20)for(let l=o+1;l<=n;l++){const n=e[l],t=i[n];let r=l-1;for(;r>=o&&i[e[r]]>t;)e[r+1]=e[r--];e[r+1]=n}else{let l=o+1,t=n;F(e,o+n>>1,l),i[e[o]]>i[e[n]]&&F(e,o,n),i[e[l]]>i[e[n]]&&F(e,l,n),i[e[o]]>i[e[l]]&&F(e,o,l);const r=e[l],w=i[r];for(;;){do{l++}while(i[e[l]]<w);do{t--}while(i[e[t]]>w);if(t<l)break;F(e,l,t)}e[o+1]=e[t],e[t]=r,n-l+1>=t-o?(k(e,i,l,n),k(e,i,o,t-1)):(k(e,i,o,t-1),k(e,i,l,n))}}function F(e,i,o){const n=e[i];e[i]=e[o],e[o]=n}function m(e){return e[0]}function B(e){return e[1]}const x=1e-6;class T{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(e,i){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+i}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(e,i){this._+=`L${this._x1=+e},${this._y1=+i}`}arc(e,i,o){const n=(e=+e)+(o=+o),l=i=+i;if(o<0)throw new Error("negative radius");null===this._x1?this._+=`M${n},${l}`:(Math.abs(this._x1-n)>x||Math.abs(this._y1-l)>x)&&(this._+="L"+n+","+l),o&&(this._+=`A${o},${o},0,1,1,${e-o},${i}A${o},${o},0,1,1,${this._x1=n},${this._y1=l}`)}rect(e,i,o,n){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+i}h${+o}v${+n}h${-o}Z`}value(){return this._||null}}class M{constructor(){this._=[]}moveTo(e,i){this._.push([e,i])}closePath(){this._.push(this._[0].slice())}lineTo(e,i){this._.push([e,i])}value(){return this._.length?this._:null}}class G{constructor(e,[i,o,n,l]=[0,0,960,500]){if(!((n=+n)>=(i=+i)&&(l=+l)>=(o=+o)))throw new Error("invalid bounds");this.delaunay=e,this._circumcenters=new Float64Array(2*e.points.length),this.vectors=new Float64Array(2*e.points.length),this.xmax=n,this.xmin=i,this.ymax=l,this.ymin=o,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:e,hull:i,triangles:o},vectors:n}=this;let l,t;const r=this.circumcenters=this._circumcenters.subarray(0,o.length/3*2);for(let n,w,s=0,a=0,d=o.length;s<d;s+=3,a+=2){const d=2*o[s],h=2*o[s+1],c=2*o[s+2],g=e[d],$=e[d+1],C=e[h],y=e[h+1],p=e[c],u=e[c+1],f=C-g,S=y-$,k=p-g,F=u-$,m=2*(f*F-S*k);if(Math.abs(m)<1e-9){if(void 0===l){l=t=0;for(const o of i)l+=e[2*o],t+=e[2*o+1];l/=i.length,t/=i.length}const o=1e9*Math.sign((l-g)*F-(t-$)*k);n=(g+p)/2-o*F,w=($+u)/2+o*k}else{const e=1/m,i=f*f+S*S,o=k*k+F*F;n=g+(F*i-S*o)*e,w=$+(f*o-k*i)*e}r[a]=n,r[a+1]=w}let w,s,a,d=i[i.length-1],h=4*d,c=e[2*d],g=e[2*d+1];n.fill(0);for(let o=0;o<i.length;++o)d=i[o],w=h,s=c,a=g,h=4*d,c=e[2*d],g=e[2*d+1],n[w+2]=n[h]=a-g,n[w+3]=n[h+1]=c-s}render(e){const i=null==e?e=new T:void 0,{delaunay:{halfedges:o,inedges:n,hull:l},circumcenters:t,vectors:r}=this;if(l.length<=1)return null;for(let i=0,n=o.length;i<n;++i){const n=o[i];if(n<i)continue;const l=2*Math.floor(i/3),r=2*Math.floor(n/3),w=t[l],s=t[l+1],a=t[r],d=t[r+1];this._renderSegment(w,s,a,d,e)}let w,s=l[l.length-1];for(let i=0;i<l.length;++i){w=s,s=l[i];const o=2*Math.floor(n[s]/3),a=t[o],d=t[o+1],h=4*w,c=this._project(a,d,r[h+2],r[h+3]);c&&this._renderSegment(a,d,c[0],c[1],e)}return i&&i.value()}renderBounds(e){const i=null==e?e=new T:void 0;return e.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),i&&i.value()}renderCell(e,i){const o=null==i?
Ephemeral Tides is an exploration of the mesmerizing dance between chaos and control where unpredictability meets order. Each iteration of Ephemeral Tides brings forth a unique and fleeting moment, inviting viewers to embrace the beauty of impermanence and the subtle harmony that arises from the convergence of seemingly opposing forces. Experience the ebb and flow of Ephemeral Tides. Press the "S" key to save the image, or "P" to export a high-resolution print.
Hyper Drive is based on the mathematics of recursion. Scale symmetry is used to create patterns that repeat at ever-smaller intervals, creating the illusion of infinite depth and complexity. The rule for the recursive loop is incredibly simple. A box is drawn, then a snapshot of the full canvas is resized to cover the boundary. As this process is repeated, small variations in position create endless fractals. This project is an experimental cross-chain collection, with a fully-generative A-side published via Art Blocks on Ethereum and an AI-based image composition B-side published via fxhash on Tezos. The artwork symbolizes the great divides we must cross, the connections we make along the way, and the disconnections we feel. We move through the world as the world moves through us.
(()=>{var e={537:e=>{function t(e,t,o){for(var r=[],i=[],n=[],a=[],s=0;s<t*o;s++)r.push(e[4*s]),i.push(e[4*s+1]),n.push(e[4*s+2]),a.push(e[4*s+3]);return[r,i,n,a]}function o(e,t,o,i,n,a){r(e,t,o,i,(a[0]-1)/2),r(t,e,o,i,(a[1]-1)/2),r(e,t,o,i,(a[2]-1)/2)}function r(e,t,o,r,i){for(var n=0;n<e.length;n++)t[n]=e[n];!function(e,t,o,r,i){for(var n=1/(i+i+1),a=0;a<r;a++){for(var s=a*o,l=s,p=s+i,h=e[s],d=e[s+o-1],c=(i+1)*h,m=0;m<i;m++)c+=e[s+m];for(m=0;m<=i;m++)c+=e[p++]-h,t[s++]=c*n;for(m=i+1;m<o-i;m++)c+=e[p++]-e[l++],t[s++]=c*n;for(m=o-i;m<o;m++)c+=d-e[l++],t[s++]=c*n}}(t,e,o,r,i),function(e,t,o,r,i){for(var n=1/(i+i+1),a=0;a<o;a++){for(var s=a,l=s,p=s+i*o,h=e[s],d=e[s+o*(r-1)],c=(i+1)*h,m=0;m<i;m++)c+=e[s+m*o];for(m=0;m<=i;m++)c+=e[p]-h,t[s]=c*n,p+=o,s+=o;for(m=i+1;m<r-i;m++)c+=e[p]-e[l],t[s]=c*n,l+=o,p+=o,s+=o;for(m=r-i;m<r;m++)c+=d-e[l],t[s]=c*n,l+=o,s+=o}}(e,t,o,r,i)}e.exports={blurImage:function(e,r,i,n){var a=t(e,r,i),s=t(e,r,i),l=function(e,t){var o=Math.sqrt(12*e*e/3+1),r=Math.floor(o);r%2==0&&r--;for(var i=r+2,n=(12*e*e-3*r*r-12*r-9)/(-4*r-4),a=Math.round(n),s=[],l=0;l<3;l++)s.push(l<a?r:i);return s}(n);return o(a[0],s[0],r,i,0,l),o(a[1],s[1],r,i,0,l),o(a[2],s[2],r,i,0,l),function(e,t,o,r,i,n,a){for(var s=0;s<t*o;s++)e[4*s]=r[s],e[4*s+1]=i[s],e[4*s+2]=n[s],e[4*s+3]=a[s]}(e,r,i,s[0],s[1],s[2],s[3]),e}}}},t={};function o(r){var i=t[r];if(void 0!==i)return i.exports;var n=t[r]={exports:{}};return e[r](n,n.exports,o),n.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";const e=JSON.parse('{"SWATCHES":{"paper":"#fff0e0","black":"#000","white":"#fff","teal":"#60cab6","yellow":"#fabf0f","red":"#bf2640","blue":"#1a3966","blue2":"#11358e","blue3":"#4c6ebf","blue4":"#6290ff","green":"#60aa10"},"PALETTE":{"Crayon":["teal","yellow","blue","red","paper"],"Blue":["blue","blue2","blue3","blue4","paper"],"Red":["red","paper"],"Sketch":["paper"],"Yellow":["yellow"],"Green":["green","paper"],"Vibes":[],"RGB":[]},"COMPLEXITY":{"Minimal":15,"Low":30,"Normal":45,"High":60,"Ultra":75},"HORIZON":{"Horizontal":false,"Vertical":true,"Mixed":null},"SYMMETRY":{"Wild":[0.333,3],"Normal":[0.5,2],"Square":[1,1]},"SYMMETRY_SCALE":{"Wild":[0,1],"Normal":[0.5,1],"Square":[0.33,0.67]},"FRAME":0.02}');var t=o(537),r=o.n(t);const i=e=>e[Math.floor(random()*e.length)],n=e=>{randomSeed(e),noiseSeed(e)};class a{constructor(){this.useA=!1;let e=function(e){let t=parseInt(e.substr(0,8),16),o=parseInt(e.substr(8,8),16),r=parseInt(e.substr(16,8),16),i=parseInt(e.substr(24,8),16);return function(){t|=0,o|=0,r|=0,i|=0;let e=(t+o|0)+i|0;return i=i+1|0,t=o^o>>>9,o=r+(r<<3)|0,r=r<<21|r>>>11,r=r+e|0,(e>>>0)/4294967296}};this.prngA=new e(tokenData.hash.substr(2,32)),this.prngB=new e(tokenData.hash.substr(34,32));for(let e=0;e<1e6;e+=2)this.prngA(),this.prngB()}random_dec(){return this.useA=!this.useA,this.useA?this.prngA():this.prngB()}random_num(e,t){return e+(t-e)*this.random_dec()}random_int(e,t){return Math.floor(this.random_num(e,t+1))}random_bool(e){return this.random_dec()<e}random_choice(e){return e[this.random_int(0,e.length-1)]}}class s{version="0.3.0";ignoreWarnings=!1;ignoreErrors=!1;#e;#t;#o;constructor(){this.#e=Math.random,this.#t={frameCount:0},this.#o={frameCount:0,tX_anchor:0,tX:0,tY:0}}setup(e){this.#r("setup",arguments),void 0===e?this.#e=random:"object"==typeof e&&("function"==typeof e.random&&(this.#e=e.random),"boolean"==typeof e.ignoreErrors&&(this.ignoreErrors=e.ignoreErrors),"boolean"==typeof e.ignoreWarnings&&(this.ignoreWarnings=e.ignoreWarnings))}granulateSimple(e,t){let o=round(e);t.loadPixels();let r=t.pixelDensity(),i=t.width*r*4*(t.height*r);for(let e=0;e<i;e+=4){let r=this.#e(-o,o);t.pixels[e]=t.pixels[e]+r,t.pixels[e+1]=t.pixels[e+1]+r,t.pixels[e+2]=t.pixels[e+2]+r}t.updatePixels()}granulateChannels(e,t){let o=round(e);t.loadPixels();let r=t.pixelDensity(),i=t.width*r*4*(t.height*r);for(let e=0;e<i;e+=4)t.pixels[e]=t.pixels[e]+this.#e(-o,o),t.pixels[e+1]=t.pixels[e+1]+this.#e(-o,o),t.pixels[e+2]=t.pixels[e+2]+this.#e(-o,o);t.updatePixels()}granulateFuzzify(e,t,o){this.#r("granulateFuzzy",arguments),loadPixels();let r=round(e),i=t?round(t):2,n=o||!1,a=pixelDensity(),s=4*width*a,l=4*i+s,p=s*(height*a);for(let e=0;e<p;e+=4)pixels[e+l]&&(pixels[e]=round((pixels[e]+pixels[e+l])/2),pixels[e+1]=round((pixels[e+1]+pixels[e+l+1])/2),pixels[e+2]=round((pixels[e+2]+pixels[e+l+2])/2),n&&(pixels[e+3]=round((pixels[e+3]+pixels[e+l+3])/2))),pixels[e]=pixels[e]+this.#e(-r,r),pixels[e+1]=pixels[e+1]+this.#e(-r,r),pixels[e+2]=pixels[e+2]+this.#e(-r,r),n&&(pixels[e+3]=pixels[e+3]+this.#e(-r,r));updatePixels()}textureAnimate(e,t){this.#r("textureAnimate",arguments);let o=t&&t.atFrame?round(t.atFrame):2;if(this.#t.frameCount+=1,this.#t.frameCount>=o){let o=t&&t.amount?round(t.amount):min(width,height),r=floor(this.#e()*o),i=floor(this.#e()*o),n=`${r}px ${i}px`;e instanceof HTMLElement?e.style.backgroundPosition=n:e instanceof SVGElement?(e.style.top=-i+"px",e.style.left=-r+"px"):e instanceof p5.Element&&e.style("background-position",n),this.#t.frameCount=0}}textureOverlay(e,t){this.#r("textureOverlay",arguments);let o=t.context instanceof p5.Graphics,r=t.context?t.context.width:width,i=t.context?t.context.height:height,n=t.mode||MULTIPLY,a=t.reflect||!1,s=t.animate||!1,l=t.animate&&t.animate.atFrame?round(t.animate.atFrame):2,p=t.animate&&t.animate.amount?round(t.animate.amount):min(r,i),h="number"==typeof t.width?t.width:e.width,d="number"==typeof t.height?t.height:e.height;s&&(this.#o.frameCount+=1,this.#o.frameCount>=l&&(this.#o.tX_anchor=-floor(this.#e()*p),this.#o.tY=-floor(this.#e()*p),this.#o.frameCount=0));let c=this.#o.tX_anchor,m=this.#o.tY,f=!0,u=!0;for(blendMode(n);m<i;){for(;c<r;){if(a?(o?t.context.push():push(),f?u?o?t.context.image(e,c,m,h,d):image(e,c,m,h,d):o?(t.context.scale(-1,1),t.context.image(e,-c,m,-h,d)):(scale(-1,1),image(e,-c,m,-h,d)):u?o?(t.context.scale(1,-1),t.context.image(e,c,-m,h,-d)):(scale(1,-1),image(e,c,-m,h,-d)):o?(t.context.scale(-1,-1),t.context.image(e,-c,-m,-h,-d)):(scale(-1,-1),image(e,-c,-m,-h,-d)),o?t.context.pop():pop()):o?t.context.image(e,c,m,h,d):image(e,c,m,h,d),(c+=h)>=r){u=!0,c=this.#o.tX_anchor,m+=d;break}u=!u}f=!f}blendMode(BLEND),o&&t.context.reset()}#r(e,t){if(!this.ignoreErrors)switch(e){case"setup":if(void 0!==t[0]&&"object"!=typeof t[0])throw Error(`[p5.grain] The optional config parameter passed to p5grain.${e}() must be of type object.`);if("object"==typeof t[0]){if(void 0!==t[0].random&&"function"!=typeof t[0].random)throw Error(`[p5.grain] The optional config.random property passed to p5grain.${e}() must be of type function.`);if(void 0!==t[0].ignoreErrors&&"boolean"!=typeof t[0].ignoreErrors)throw Error(`[p5.grain] The optional config.ignoreErrors property passed to p5grain.${e}() must be of type boolean.`);if(void 0!==t[0].ignoreWarnings&&"boolean"!=typeof t[0].ignoreWarnings)throw Error(`[p5.grain] The optional config.ignoreWarnings property passed to p5grain.${e}() must be of type boolean.`)}break;case"granulateSimple":case"granulateChannels":if("number"!=typeof t[0])throw Error(`[p5.grain] The amount parameter passed to ${e}() must be of type number.`);if(void 0!==t[1]&&"boolean"!=typeof t[1])throw Error(`[p5.grain] The alpha parameter passed to ${e}() must be of type boolean.`);break;case"granulateFuzzify":if("number"!=typeof t[0])throw Error(`[p5.grain] The amount parameter passed to ${e}() must be of type number.`);if(void 0!==t[1]&&"number"!=typeof t[1])throw Error(`[p5.grain] The fuzziness parameter passed to ${e}() must be of type number.`);if(void 0!==t[2]&&"boolean"!=typeof t[2])throw Error(`[p5.grain] The alpha parameter passed to ${e}() must be of type boolean.`);break;case"textureAnimate":if(!(t[0]instanceof HTMLElement||t[0]instanceof SVGElement||t[0]instanceof p5.Element))throw Error(`[p5.grain] The textureElement parameter passed to ${e}() must be an instance of HTMLElement, SVGElement or p5.Element.`);if(void 0!==t[1]&&"object"!=typeof t[1])throw Error(`[p5.grain] The optional config parameter passed to ${e}() must be of type object.`);if("object"==typeof t[1]){if(void 0!==t[1].atFrame&&"number"!=typeof t[1].atFrame)throw Error(`[p5.grain] The optional config.atFrame property passed to ${e}() must be of type number.`);if(void 0!==t[1].amount&&"number"!=typeof t[1].amount)throw Error(`[p5.grain] The optional config.amount parameter passed to ${e}() must be of type number.`)}break;case"textureOverlay":if(!(t[0]instanceof p5.Image))throw Error(`[p5.grain] The texture parameter passed to ${e}() must be an instance of p5.Image.`);if(void 0!==t[1]&&"object"!=typeof t[1])throw Error(`[p5.grain] The optional config parameter passed to ${e}() must be of type object.`);if("object"==typeof t[1]){if(void 0!==t[1].width&&"number"!=typeof t[1].width)throw Error(`[p5.grain] The optional config.width property passed to ${e}() must be of type number.`);if(void 0!==t[1].height&&"number"!=typeof t[1].height)throw Error(`[p5.grain] The optional config.height property passed to ${e}() must be of type number.`);if(void 0!==t[1].mode&&"string"!=typeof t[1].mode)throw Error(`[p5.grain] The optional config.mode property passed to ${e}() must be of type string.`);if(void 0!==t[1].context&&!(t[1].context instanceof p5.Graphics))throw Error(`[p5.grain] The optional config.context parameter passed to ${e}() must be an instance of p5.Graphics.`);if(void 0!==t[1].reflect&&"boolean"!=typeof t[1].reflect)throw Error(`[p5.grain] The optional config.reflect property passed to ${e}() must be of type boolean.`)}}}}const l=(e,t,o,r,i=0,n)=>{const[a,s,l]=e,[p,h]=o;for(let e=0;e<t;e++){const e=random(p,h)*l,t=i/180*PI,o=(l-e)*random(),d=random()*r-.5*r,c=random()*r-.5*r;n.line(a+cos(t)*o+d,s-sin(t)*o+c,a+cos(t)*(o+e)+d,s-sin(t)*(o+e)+c)}},p=(e,t,o,r,i)=>{const[n,a,s,p]=e;let h=r/2;l([n-h,a+0,s+2*h],t,o,r,0,i),l([n+0,a-h,p+2*h],t,o,r,-90,i),l([n-h,a+p-0,s+2*h],t,o,r,0,i),l([n+s-0,a-h,p+2*h],t,o,r,-90,i)},h=(e,t,o,r,i)=>{const[n,a,s,p]=e,h=p/t,d=s/t;for(let e=0;e<t;e++)l([n,a+h*e,s],10,o,r,0,i);for(let e=0;e<t;e++)l([n+d*e,a,p],3,o,r,-90,i)},d=(e,t,o)=>{e.noStroke(),e.fill(o);const r=Math.min(e.width,e.height)*t;e.rect(0,0,e.width,r),e.rect(0,e.height-r,e.width,r),e.rect(0,0,r,e.height),e.rect(e.width-r,0,r,e.height)},c=(e,t,o,r,i,n,a,s)=>{if(s.noFill(),s.strokeWeight(2),s.strokeCap(SQUARE),s.colorMode(RGB),a)for(let a=t;a<=t+r;a++){let l=map(a,t,t+r,0,1),p=s.lerpColor(i,n,l);s.stroke(p),s.line(e,a,e+o,a)}else for(let a=e;a<=e+o;a++){let l=map(a,e,e+o,0,1),p=s.lerpColor(i,n,l);s.stroke(p),s.line(a,t,a,t+r)}s.colorMode(HSB,360,100,100)},m=(e,t,o,r=10,i=1,n=1.01,a=0,s)=>{const l=[e,t,o],p=[[l[0],l[1]],[l[1],l[2]],[l[2],l[0]]],[h,d,c]=p,m=dist(...h.flat()),f=dist(...d.flat()),u=dist(...c.flat());switch(a){case 0:{let e=atan2(c[0][1]-h[1][1],c[0][0]-h[1][0]),t=atan2(c[0][1]-h[0][1],c[0][0]-h[0][0]);for(let o=0;o<r;o++){const a=pow(o/r,i),l=[[h[1][0]+cos(e)*f*a,h[1][1]+sin(e)*f*a],[h[0][0]+cos(t)*u*a,h[0][1]+sin(t)*u*a],[h[0][0]+cos(t)*min(u,u*a*n),h[0][1]+sin(t)*min(u,u*a*n)],[h[1][0]+cos(e)*min(f,f*a*n),h[1][1]+sin(e)*min(f,f*a*n)]];s.beginShape(),l.forEach((e=>s.vertex(...e))),s.endShape(CLOSE)}break}case 1:{const e=atan2(c[1][1]-d[1][1],c[1][0]-d[1][0]),t=atan2(c[1][1]-d[0][1],c[1][0]-d[0][0]);for(let o=0;o<r;o++){const a=pow(o/r,i),l=[[d[1][0]+cos(e)*u*a,d[1][1]+sin(e)*u*a],[d[0][0]+cos(t)*m*a,d[0][1]+sin(t)*m*a],[d[0][0]+cos(t)*min(m,m*a*n),d[0][1]+sin(t)*min(m,m*a*n)],[d[1][0]+cos(e)*min(u,u*a*n),d[1][1]+sin(e)*min(u,u*a*n)]];s.beginShape(),l.forEach((e=>s.vertex(...e))),s.endShape(CLOSE)}break}case 2:{const e=atan2(h[1][1]-c[1][1],h[1][0]-c[1][0]),t=atan2(h[1][1]-c[0][1],h[1][0]-c[0][0]);for(let o=0;o<r;o++){const a=pow(o/r,i),l=[[c[1][0]+cos(e)*m*a,c[1][1]+sin(e)*m*a],[c[0][0]+cos(t)*f*a,c[0][1]+sin(t)*f*a],[c[0][0]+cos(t)*min(f,f*a*n),c[0][1]+sin(t)*min(f,f*a*n)],[c[1][0]+cos(e)*min(m,m*a*n),c[1][1]+sin(e)*min(m,m*a*n)]];s.beginShape(),l.forEach((e=>s.vertex(...e))),s.endShape(CLOSE)}break}}},f=(e,t,o,r,i=2,n=10,a=!0,s=!1,l)=>{l.noStroke(),l.fill(0);for(let p=0;p<n;p++)if(s){const s=e+o*Math.pow(p/n,i),h=a?p/n:1-p/n,d=Math.pow(h,2)*(o/n)*1.5+1;l.rect(s,t,d,r)}else{const s=t+r*Math.pow(p/n,i),h=a?p/n:1-p/n,d=Math.pow(h,2)*(r/n)*1.5+1;l.rect(e,s,o,d)}},u=(t=[])=>{const o=window.$features.Palette;return["Vibes","RGB"].includes(o)?window.$settings.hasCol?color(window.$settings.hasColAll?360*random():0,100,100):color(0):color(e.SWATCHES[i(e.PALETTE[o].filter((e=>!t.includes(e))))])},{SWATCHES:w,FRAME:g,COMPLEXITY:b,SYMMETRY:x,SYMMETRY_SCALE:y}=e;let E,S=!1,v=~~(1e9*(new a).random_dec());const M=.75;window.setup=()=>{window.renderComplete=!1,n(v),E=new s,E.setup({random}),window.$features=function(){let e=new a,t={Palette:e.random_bool(.35)?"Vibes":e.random_bool(.3)?"RGB":e.random_bool(.45)?"Crayon":e.random_choice(["Blue","Red","Sketch","Yellow","Green"]),Complexity:e.random_bool(.1)?"Low":e.random_bool(.25)?"High":"Normal",Speed:e.random_bool(.25)?"Normal":"Warp",Symmetry:e.random_bool(.15)?"Square":e.random_bool(.15)?"Wild":"Normal",View:e.random_bool(.25)?"Windows":e.random_choice(["Horizon","Mixed"]),Photogenic:"None",Frame:"Framed",Side:"A"};return["Vibes","RGB"].includes(t.Palette)&&e.random_bool(.1)&&(t.View="None"),["Vibes","RGB"].includes(t.Palette)&&e.random_bool(.33)&&(t.Frame="None"),"Sketch"===t.Palette&&(t.View=e.random_choice(["Windows","Horizon","Mixed"])),["Vibes","RGB"].includes(t.Palette)&&(t.Complexity="Normal"),["Sketch"].includes(t.Palette)&&e.random_bool(.1)&&(t.Complexity="Ultra"),["RGB"].includes(t.Palette)&&(t.Speed="Warp"),t}(),window.$settings={hasCol:random()<.5,hasColAll:random()<.25,horizon:random()<.5?"Mixed":random()<.25?"Horizontal":"Vertical",gravity:random()<.1?i(["Stretch","Split"]):"Normal",rgbShine:random()<.5,blocky:random()<.25||"Sketch"===window.$features.Palette,opacity:["Vibes"].includes(window.$features.Palette)&&random()<.1?.5:1};const[e,t]=((e,t,o)=>((e,t,o,r)=>{const i=Math.min(o/e,r/1);return[e*i,1*i]})(e,0,t,o))(M,windowWidth,windowHeight),o=createCanvas(Math.floor(e),Math.floor(t));pixelDensity(2),o.style("width",""),o.style("height",""),o.style("max-width","100%"),o.style("max-height","100%"),colorMode(HSB,360,100,100),noLoop()};const $=(e,t)=>{clear(),noStroke(),fill(0),rect(0,0,width,height);const o=.005*Math.min(width,height),r=.8*width,i=(width-r)/2,n=e*r;fill("#fff"),rect(i,height/2-o/2,n,o),textSize(3.5*o),text(t,width/2-r/2,height/2-2*o)},P=async(t,o)=>{n(v);const a=window.$features.Palette,s=createGraphics(t,o);s.colorMode(HSB,360,100,100),s.pixelDensity(2),(e=>{const t=window.$features.Palette;let o,r,a;if(["Vibes","RGB"].includes(t)){const e=i(["Blue","Red"]);"Blue"===e&&(a=random(200,250)),"Red"===e&&(a=random(-10,20)),o=color(a%360,100,100),r=color((a+30)%360,100,100)}else o=color(hue(w.paper),saturation(w.paper),brightness(w.paper),window.$settings.opacity),r=color(hue(w.paper),saturation(w.paper),.85*brightness(w.paper),window.$settings.opacity**2);c(0,0,e.width,e.height,o,r,!0,e),"None"===window.$features.View||"Warp"===window.$features.Speed&&((e,t,o,r,i,n,a)=>{const s=[0+o/2,0+r/2];i.noStroke(),n&&(i.fill(n),i.rect(0,0,o,r));const l=[[[0,0],[0+o,0],[s[0],s[1]]],[[0+o,0],[0+o,0+r],[s[0],s[1]]],[[0,0+r],[0+o,0+r],[s[0],s[1]]],[[0,0],[0,0+r],[s[0],s[1]]]];for(const e of l)i.noFill(),i.fill(a),m(e[0],e[1],e[2],random(5,20),random(.5,2),random(1.015,1.15),Math.floor(3*random()),i)})(0,0,e.width,e.height,e,"Vibes"===t?null:w.paper,w.black);const s=50*e.width*.001;["RGB","Vibes"].includes(window.$features.Palette)?E.granulateChannels(s/2,e):E.granulateChannels(s/3,e),n(v),console.info({Features:window.$features,Settings:window.$settings})})(s),await(async(t,o=!0)=>{const r=window.$features.Palette;let i=b[window.$features.Complexity];for(let n=0;n<i;n++){"None"===window.$features.View&&d(t,g,w[["Vibes","RGB"].includes(r)?"black":"paper"]),o&&$(n/i,(S?"SAVING":"LOADING")+" HYPER DRIVE...");const a=Math.pow(1-n/i,1);let s=t.width*random(...y[window.$features.Symmetry])*a;s=constrain(s,0,t.width);let l=s*random(...x[window.$features.Symmetry]);l=constrain(l,0,t.height),"Square"===window.$features.Symmetry&&(l=s*(1/M));const m=.75,b=random(-m,m),E=random(-m,m);let v=(t.width-s)/2+Math.min(t.width,t.height)*b,P=(t.height-l)/2+Math.min(t.width,t.height)*E;"Stretch"===window.$settings.gravity?P=.5*(t.height-l)+.5*P:"Split"===window.$settings.gravity&&random()<.25&&(P=t.height/2);let C=color(n%2==0?u():color(0));if(window.$settings.blocky&&(C=color(n%2==0?color(0):u())),C=color(hue(C),saturation(C),brightness(C),window.$settings.opacity),t.fill(C),t.noStroke(),["Vibes","RGB"].includes(r)){const e=360*random();c(v,P,s,l,color(e,100,100,window.$settings.opacity),color((e+50)%360,100,80,window.$settings.opacity**2),!0,t)}else t.rect(v,P,s,l);let k=random(8,24),R="Horizon"===window.$features.View||"Mixed"===window.$features.View&&random()<.5;if("None"===window.$features.View);else if(R){if(["Vibes","RGB"].includes(r)){const e=360*random();c(v,P,s,l,color(e,100,100,window.$settings.opacity),color((e+50)%360,100,80,window.$settings.opacity**2),!0,t)}else{let e=u();e=color(hue(e),saturation(e),brightness(e),window.$settings.opacity),t.noStroke(),t.fill(e),t.rect(v,P,s,l)}f(v,P,s,l,random(.5,3),k,random()<.5,"Mixed"===window.$settings.horizon?random()<.5:e.HORIZON[window.$settings.horizon],t)}else{let e=n%2!=0?color(0):u();["RGB","Vibes"].includes(window.$features.Palette)||0!==e.levels[0]||0!==C.levels[0]||0!==e.levels[1]||0!==C.levels[1]||0!==e.levels[2]||0!==C.levels[2]||(e=w.paper),t.stroke(e),t.strokeWeight(.0075*Math.min(s,l)),h([v,P,s,l],random(10,15),[.8,1],2,t)}t.stroke(n%2!=0||["Sketch","Green","Blue","Red","Yellow"].includes(window.$features.Palette)?0:u(["paper"])),t.strokeWeight(("Ultra"===window.$features.Complexity?.005:.02125)*Math.min(s,l)),"Framed"===window.$features.Frame&&p([v,P,s,l],random(3,5),[random(.5,.8),random(1,2)],0,t);let T=createImage(2*t.width,2*t.height);T.copy(t,0,0,t.width,t.height,0,0,2*t.width,2*t.height),t.image(T,v,P,s,l,0,0)}})(s);const l=(()=>{switch(window.$features.Palette){case"Vibes":return 115;case"RGB":return 85;default:return 0}})();return["Vibes","RGB"].includes(window.$features.Palette)&&((e,t,o,i)=>{const n=e.get(0,0,e.width,e.height),a=createGraphics(Math.ceil(e.width),Math.ceil(e.height));a.pixelDensity(1),a.image(n,0,0,a.width,a.height),((e,t,o=2.25)=>{e.loadPixels();for(let r=0;r<e.height;r++)for(let i=0;i<e.width;i++){const n=r*e.width*4+4*i;e.pixels[n]=constrain(o*(e.pixels[n]-128)+128,0,255),e.pixels[n+1]=constrain(o*(e.pixels[n+1]-128)+128,0,255),e.pixels[n+2]=constrain(o*(e.pixels[n+2]-128)+128,0,255),e.pixels[n+3]=t}})(a,i),a.pixels=r().blurImage(a.pixels,a.width,a.height,o),a.updatePixels(),e.blendMode(t),e.image(a,0,0,e.width,e.height),a.remove()})(s,"RGB"===a&&window.$settings.rgbShine?SCREEN:BLEND,("RGB"===a?.015:.0225)*s.width,l),(({vW:e,vH:t,vS:o,vP:r,vinScale:i,buf:n})=>{n.loadPixels();const a=2*n.height,s=2*n.width;for(let l=0;l<a;l++){const p=1-l/a;for(let h=0;h<s;h++){const d=l*s*4+4*h,c=dist(h/s*e,l/a*t,.5,.5)*i;let m=Math.pow(p,.25)*.25+.75-Math.pow(c,r)*o;n.pixels[d]=constrain(n.pixels[d]+m,0,255),n.pixels[d+1]=constrain(n.pixels[d+1]+m,0,255),n.pixels[d+2]=constrain(n.pixels[d+2]+m,0,255),n.pixels[d+3]=255}}n.updatePixels(),n.blendMode(BLEND)})({vW:random(.67,1),vH:random(.67,1),vS:random(5,10),vP:random(1.4,1.9),vinScale:random(2,2.75),buf:s}),E.granulateChannels(8*s.width*.001,s),(e=>{let t=Number.MAX_VALUE,o=Number.MIN_VALUE;for(let r=0;r<2*e.height;r++)for(let i=0;i<2*e.width;i++){const n=r*e.width*2*4+4*i;t=Math.min(t,e.pixels[n],e.pixels[n+1],e.pixels[n+2]),o=Math.max(o,e.pixels[n],e.pixels[n+1],e.pixels[n+2])}for(let r=0;r<2*e.height;r++)for(let i=0;i<2*e.width;i++){const n=r*e.width*2*4+4*i,a=255/(o-t);e.pixels[n]=(e.pixels[n]-t)*a,e.pixels[n+1]=(e.pixels[n+1]-t)*a,e.pixels[n+2]=(e.pixels[n+2]-t)*a}e.updatePixels()})(s),d(s,g,w[["Vibes","RGB"].includes(a)?"black":"paper"]),s};window.draw=async()=>{const e=await P(Math.floor(width),Math.floor(height));image(e,0,0),e.remove(),window.renderComplete=!0};const C=async e=>{S=!0,window.renderComplete=!1,console.info("Saving..."),$(0,"SAVING HYPER DRIVE...");const t=await P(Math.floor(e),Math.floor(e*(1/M)));save(t,"hyper_drive_a.png"),console.info("Done."),S=!1,image(t,0,0,width,height),t.remove()};window.keyTyped=()=>{switch(key){case"p":return C(4096);case"s":return C(2048)}}})()})();
(()=>{var e={537:e=>{function t(e,t,o){for(var r=[],i=[],n=[],a=[],s=0;s<t*o;s++)r.push(e[4*s]),i.push(e[4*s+1]),n.push(e[4*s+2]),a.push(e[4*s+3]);return[r,i,n,a]}function o(e,t,o,i,n,a){r(e,t,o,i,(a[0]-1)/2),r(t,e,o,i,(a[1]-1)/2),r(e,t,o,i,(a[2]-1)/2)}function r(e,t,o,r,i){for(var n=0;n<e.length;n++)t[n]=e[n];!function(e,t,o,r,i){for(var n=1/(i+i+1),a=0;a<r;a++){for(var s=a*o,l=s,p=s+i,h=e[s],d=e[s+o-1],c=(i+1)*h,m=0;m<i;m++)c+=e[s+m];for(m=0;m<=i;m++)c+=e[p++]-h,t[s++]=c*n;for(m=i+1;m<o-i;m++)c+=e[p++]-e[l++],t[s++]=c*n;for(m=o-i;m<o;m++)c+=d-e[l++],t[s++]=c*n}}(t,e,o,r,i),function(e,t,o,r,i){for(var n=1/(i+i+1),a=0;a<o;a++){for(var s=a,l=s,p=s+i*o,h=e[s],d=e[s+o*(r-1)],c=(i+1)*h,m=0;m<i;m++)c+=e[s+m*o];for(m=0;m<=i;m++)c+=e[p]-h,t[s]=c*n,p+=o,s+=o;for(m=i+1;m<r-i;m++)c+=e[p]-e[l],t[s]=c*n,l+=o,p+=o,s+=o;for(m=r-i;m<r;m++)c+=d-e[l],t[s]=c*n,l+=o,s+=o}}(e,t,o,r,i)}e.exports={blurImage:function(e,r,i,n){var a=t(e,r,i),s=t(e,r,i),l=function(e,t){var o=Math.sqrt(12*e*e/3+1),r=Math.floor(o);r%2==0&&r--;for(var i=r+2,n=(12*e*e-3*r*r-12*r-9)/(-4*r-4),a=Math.round(n),s=[],l=0;l<3;l++)s.push(l<a?r:i);return s}(n);return o(a[0],s[0],r,i,0,l),o(a[1],s[1],r,i,0,l),o(a[2],s[2],r,i,0,l),function(e,t,o,r,i,n,a){for(var s=0;s<t*o;s++)e[4*s]=r[s],e[4*s+1]=i[s],e[4*s+2]=n[s],e[4*s+3]=a[s]}(e,r,i,s[0],s[1],s[2],s[3]),e}}}},t={};function o(r){var i=t[r];if(void 0!==i)return i.exports;var n=t[r]={exports:{}};return e[r](n,n.exports,o),n.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";const e=JSON.parse('{"SWATCHES":{"paper":"#fff0e0","black":"#000","white":"#fff","teal":"#60cab6","yellow":"#fabf0f","red":"#bf2640","blue":"#1a3966","blue2":"#11358e","blue3":"#4c6ebf","blue4":"#6290ff","green":"#60aa10"},"PALETTE":{"Crayon":["teal","yellow","blue","red","paper"],"Blue":["blue","blue2","blue3","blue4","paper"],"Red":["red","paper"],"Sketch":["paper"],"Yellow":["yellow"],"Green":["green","paper"],"Vibes":[],"RGB":[]},"COMPLEXITY":{"Minimal":15,"Low":30,"Normal":45,"High":60,"Ultra":75},"HORIZON":{"Horizontal":false,"Vertical":true,"Mixed":null},"SYMMETRY":{"Wild":[0.333,3],"Normal":[0.5,2],"Square":[1,1]},"SYMMETRY_SCALE":{"Wild":[0,1],"Normal":[0.5,1],"Square":[0.33,0.67]},"FRAME":0.02}');var t=o(537),r=o.n(t);const i=e=>e[Math.floor(random()*e.length)],n=e=>{randomSeed(e),noiseSeed(e)};class a{constructor(){this.useA=!1;let e=function(e){let t=parseInt(e.substr(0,8),16),o=parseInt(e.substr(8,8),16),r=parseInt(e.substr(16,8),16),i=parseInt(e.substr(24,8),16);return function(){t|=0,o|=0,r|=0,i|=0;let e=(t+o|0)+i|0;return i=i+1|0,t=o^o>>>9,o=r+(r<<3)|0,r=r<<21|r>>>11,r=r+e|0,(e>>>0)/4294967296}};this.prngA=new e(tokenData.hash.substr(2,32)),this.prngB=new e(tokenData.hash.substr(34,32));for(let e=0;e<1e6;e+=2)this.prngA(),this.prngB()}random_dec(){return this.useA=!this.useA,this.useA?this.prngA():this.prngB()}random_num(e,t){return e+(t-e)*this.random_dec()}random_int(e,t){return Math.floor(this.random_num(e,t+1))}random_bool(e){return this.random_dec()<e}random_choice(e){return e[this.random_int(0,e.length-1)]}}class s{version="0.3.0";ignoreWarnings=!1;ignoreErrors=!1;#e;#t;#o;constructor(){this.#e=Math.random,this.#t={frameCount:0},this.#o={frameCount:0,tX_anchor:0,tX:0,tY:0}}setup(e){this.#r("setup",arguments),void 0===e?this.#e=random:"object"==typeof e&&("function"==typeof e.random&&(this.#e=e.random),"boolean"==typeof e.ignoreErrors&&(this.ignoreErrors=e.ignoreErrors),"boolean"==typeof e.ignoreWarnings&&(this.ignoreWarnings=e.ignoreWarnings))}granulateSimple(e,t){let o=round(e);t.loadPixels();let r=t.pixelDensity(),i=t.width*r*4*(t.height*r);for(let e=0;e<i;e+=4){let r=this.#e(-o,o);t.pixels[e]=t.pixels[e]+r,t.pixels[e+1]=t.pixels[e+1]+r,t.pixels[e+2]=t.pixels[e+2]+r}t.updatePixels()}granulateChannels(e,t){let o=round(e);t.loadPixels();let r=t.pixelDensity(),i=t.width*r*4*(t.height*r);for(let e=0;e<i;e+=4)t.pixels[e]=t.pixels[e]+this.#e(-o,o),t.pixels[e+1]=t.pixels[e+1]+this.#e(-o,o),t.pixels[e+2]=t.pixels[e+2]+this.#e(-o,o);t.updatePixels()}granulateFuzzify(e,t,o){this.#r("granulateFuzzy",arguments),loadPixels();let r=round(e),i=t?round(t):2,n=o||!1,a=pixelDensity(),s=4*width*a,l=4*i+s,p=s*(height*a);for(let e=0;e<p;e+=4)pixels[e+l]&&(pixels[e]=round((pixels[e]+pixels[e+l])/2),pixels[e+1]=round((pixels[e+1]+pixels[e+l+1])/2),pixels[e+2]=round((pixels[e+2]+pixels[e+l+2])/2),n&&(pixels[e+3]=round((pixels[e+3]+pixels[e+l+3])/2))),pixels[e]=pixels[e]+this.#e(-r,r),pixels[e+1]=pixels[e+1]+this.#e(-r,r),pixels[e+2]=pixels[e+2]+this.#e(-r,r),n&&(pixels[e+3]=pixels[e+3]+this.#e(-r,r));updatePixels()}textureAnimate(e,t){this.#r("textureAnimate",arguments);let o=t&&t.atFrame?round(t.atFrame):2;if(this.#t.frameCount+=1,this.#t.frameCount>=o){let o=t&&t.amount?round(t.amount):min(width,height),r=floor(this.#e()*o),i=floor(this.#e()*o),n=`${r}px ${i}px`;e instanceof HTMLElement?e.style.backgroundPosition=n:e instanceof SVGElement?(e.style.top=-i+"px",e.style.left=-r+"px"):e instanceof p5.Element&&e.style("background-position",n),this.#t.frameCount=0}}textureOverlay(e,t){this.#r("textureOverlay",arguments);let o=t.context instanceof p5.Graphics,r=t.context?t.context.width:width,i=t.context?t.context.height:height,n=t.mode||MULTIPLY,a=t.reflect||!1,s=t.animate||!1,l=t.animate&&t.animate.atFrame?round(t.animate.atFrame):2,p=t.animate&&t.animate.amount?round(t.animate.amount):min(r,i),h="number"==typeof t.width?t.width:e.width,d="number"==typeof t.height?t.height:e.height;s&&(this.#o.frameCount+=1,this.#o.frameCount>=l&&(this.#o.tX_anchor=-floor(this.#e()*p),this.#o.tY=-floor(this.#e()*p),this.#o.frameCount=0));let c=this.#o.tX_anchor,m=this.#o.tY,f=!0,u=!0;for(blendMode(n);m<i;){for(;c<r;){if(a?(o?t.context.push():push(),f?u?o?t.context.image(e,c,m,h,d):image(e,c,m,h,d):o?(t.context.scale(-1,1),t.context.image(e,-c,m,-h,d)):(scale(-1,1),image(e,-c,m,-h,d)):u?o?(t.context.scale(1,-1),t.context.image(e,c,-m,h,-d)):(scale(1,-1),image(e,c,-m,h,-d)):o?(t.context.scale(-1,-1),t.context.image(e,-c,-m,-h,-d)):(scale(-1,-1),image(e,-c,-m,-h,-d)),o?t.context.pop():pop()):o?t.context.image(e,c,m,h,d):image(e,c,m,h,d),(c+=h)>=r){u=!0,c=this.#o.tX_anchor,m+=d;break}u=!u}f=!f}blendMode(BLEND),o&&t.context.reset()}#r(e,t){if(!this.ignoreErrors)switch(e){case"setup":if(void 0!==t[0]&&"object"!=typeof t[0])throw Error(`[p5.grain] The optional config parameter passed to p5grain.${e}() must be of type object.`);if("object"==typeof t[0]){if(void 0!==t[0].random&&"function"!=typeof t[0].random)throw Error(`[p5.grain] The optional config.random property passed to p5grain.${e}() must be of type function.`);if(void 0!==t[0].ignoreErrors&&"boolean"!=typeof t[0].ignoreErrors)throw Error(`[p5.grain] The optional config.ignoreErrors property passed to p5grain.${e}() must be of type boolean.`);if(void 0!==t[0].ignoreWarnings&&"boolean"!=typeof t[0].ignoreWarnings)throw Error(`[p5.grain] The optional config.ignoreWarnings property passed to p5grain.${e}() must be of type boolean.`)}break;case"granulateSimple":case"granulateChannels":if("number"!=typeof t[0])throw Error(`[p5.grain] The amount parameter passed to ${e}() must be of type number.`);if(void 0!==t[1]&&"boolean"!=typeof t[1])throw Error(`[p5.grain] The alpha parameter passed to ${e}() must be of type boolean.`);break;case"granulateFuzzify":if("number"!=typeof t[0])throw Error(`[p5.grain] The amount parameter passed to ${e}() must be of type number.`);if(void 0!==t[1]&&"number"!=typeof t[1])throw Error(`[p5.grain] The fuzziness parameter passed to ${e}() must be of type number.`);if(void 0!==t[2]&&"boolean"!=typeof t[2])throw Error(`[p5.grain] The alpha parameter passed to ${e}() must be of type boolean.`);break;case"textureAnimate":if(!(t[0]instanceof HTMLElement||t[0]instanceof SVGElement||t[0]instanceof p5.Element))throw Error(`[p5.grain] The textureElement parameter passed to ${e}() must be an instance of HTMLElement, SVGElement or p5.Element.`);if(void 0!==t[1]&&"object"!=typeof t[1])throw Error(`[p5.grain] The optional config parameter passed to ${e}() must be of type object.`);if("object"==typeof t[1]){if(void 0!==t[1].atFrame&&"number"!=typeof t[1].atFrame)throw Error(`[p5.grain] The optional config.atFrame property passed to ${e}() must be of type number.`);if(void 0!==t[1].amount&&"number"!=typeof t[1].amount)throw Error(`[p5.grain] The optional config.amount parameter passed to ${e}() must be of type number.`)}break;case"textureOverlay":if(!(t[0]instanceof p5.Image))throw Error(`[p5.grain] The texture parameter passed to ${e}() must be an instance of p5.Image.`);if(void 0!==t[1]&&"object"!=typeof t[1])throw Error(`[p5.grain] The optional config parameter passed to ${e}() must be of type object.`);if("object"==typeof t[1]){if(void 0!==t[1].width&&"number"!=typeof t[1].width)throw Error(`[p5.grain] The optional config.width property passed to ${e}() must be of type number.`);if(void 0!==t[1].height&&"number"!=typeof t[1].height)throw Error(`[p5.grain] The optional config.height property passed to ${e}() must be of type number.`);if(void 0!==t[1].mode&&"string"!=typeof t[1].mode)throw Error(`[p5.grain] The optional config.mode property passed to ${e}() must be of type string.`);if(void 0!==t[1].context&&!(t[1].context instanceof p5.Graphics))throw Error(`[p5.grain] The optional config.context parameter passed to ${e}() must be an instance of p5.Graphics.`);if(void 0!==t[1].reflect&&"boolean"!=typeof t[1].reflect)throw Error(`[p5.grain] The optional config.reflect property passed to ${e}() must be of type boolean.`)}}}}const l=(e,t,o,r,i=0,n)=>{const[a,s,l]=e,[p,h]=o;for(let e=0;e<t;e++){const e=random(p,h)*l,t=i/180*PI,o=(l-e)*random(),d=random()*r-.5*r,c=random()*r-.5*r;n.line(a+cos(t)*o+d,s-sin(t)*o+c,a+cos(t)*(o+e)+d,s-sin(t)*(o+e)+c)}},p=(e,t,o,r,i)=>{const[n,a,s,p]=e;let h=r/2;l([n-h,a+0,s+2*h],t,o,r,0,i),l([n+0,a-h,p+2*h],t,o,r,-90,i),l([n-h,a+p-0,s+2*h],t,o,r,0,i),l([n+s-0,a-h,p+2*h],t,o,r,-90,i)},h=(e,t,o,r,i)=>{const[n,a,s,p]=e,h=p/t,d=s/t;for(let e=0;e<t;e++)l([n,a+h*e,s],10,o,r,0,i);for(let e=0;e<t;e++)l([n+d*e,a,p],3,o,r,-90,i)},d=(e,t,o)=>{e.noStroke(),e.fill(o);const r=Math.min(e.width,e.height)*t;e.rect(0,0,e.width,r),e.rect(0,e.height-r,e.width,r),e.rect(0,0,r,e.height),e.rect(e.width-r,0,r,e.height)},c=(e,t,o,r,i,n,a,s)=>{if(s.noFill(),s.strokeWeight(2),s.strokeCap(SQUARE),s.colorMode(RGB),a)for(let a=t;a<=t+r;a++){let l=map(a,t,t+r,0,1),p=s.lerpColor(i,n,l);s.stroke(p),s.line(e,a,e+o,a)}else for(let a=e;a<=e+o;a++){let l=map(a,e,e+o,0,1),p=s.lerpColor(i,n,l);s.stroke(p),s.line(a,t,a,t+r)}s.colorMode(HSB,360,100,100)},m=(e,t,o,r=10,i=1,n=1.01,a=0,s)=>{const l=[e,t,o],p=[[l[0],l[1]],[l[1],l[2]],[l[2],l[0]]],[h,d,c]=p,m=dist(...h.flat()),f=dist(...d.flat()),u=dist(...c.flat());switch(a){case 0:{let e=atan2(c[0][1]-h[1][1],c[0][0]-h[1][0]),t=atan2(c[0][1]-h[0][1],c[0][0]-h[0][0]);for(let o=0;o<r;o++){const a=pow(o/r,i),l=[[h[1][0]+cos(e)*f*a,h[1][1]+sin(e)*f*a],[h[0][0]+cos(t)*u*a,h[0][1]+sin(t)*u*a],[h[0][0]+cos(t)*min(u,u*a*n),h[0][1]+sin(t)*min(u,u*a*n)],[h[1][0]+cos(e)*min(f,f*a*n),h[1][1]+sin(e)*min(f,f*a*n)]];s.beginShape(),l.forEach((e=>s.vertex(...e))),s.endShape(CLOSE)}break}case 1:{const e=atan2(c[1][1]-d[1][1],c[1][0]-d[1][0]),t=atan2(c[1][1]-d[0][1],c[1][0]-d[0][0]);for(let o=0;o<r;o++){const a=pow(o/r,i),l=[[d[1][0]+cos(e)*u*a,d[1][1]+sin(e)*u*a],[d[0][0]+cos(t)*m*a,d[0][1]+sin(t)*m*a],[d[0][0]+cos(t)*min(m,m*a*n),d[0][1]+sin(t)*min(m,m*a*n)],[d[1][0]+cos(e)*min(u,u*a*n),d[1][1]+sin(e)*min(u,u*a*n)]];s.beginShape(),l.forEach((e=>s.vertex(...e))),s.endShape(CLOSE)}break}case 2:{const e=atan2(h[1][1]-c[1][1],h[1][0]-c[1][0]),t=atan2(h[1][1]-c[0][1],h[1][0]-c[0][0]);for(let o=0;o<r;o++){const a=pow(o/r,i),l=[[c[1][0]+cos(e)*m*a,c[1][1]+sin(e)*m*a],[c[0][0]+cos(t)*f*a,c[0][1]+sin(t)*f*a],[c[0][0]+cos(t)*min(f,f*a*n),c[0][1]+sin(t)*min(f,f*a*n)],[c[1][0]+cos(e)*min(m,m*a*n),c[1][1]+sin(e)*min(m,m*a*n)]];s.beginShape(),l.forEach((e=>s.vertex(...e))),s.endShape(CLOSE)}break}}},f=(e,t,o,r,i=2,n=10,a=!0,s=!1,l)=>{l.noStroke(),l.fill(0);for(let p=0;p<n;p++)if(s){const s=e+o*Math.pow(p/n,i),h=a?p/n:1-p/n,d=Math.pow(h,2)*(o/n)*1.5+1;l.rect(s,t,d,r)}else{const s=t+r*Math.pow(p/n,i),h=a?p/n:1-p/n,d=Math.pow(h,2)*(r/n)*1.5+1;l.rect(e,s,o,d)}},u=(t=[])=>{const o=window.$features.Palette;return["Vibes","RGB"].includes(o)?window.$settings.hasCol?color(window.$settings.hasColAll?360*random():0,100,100):color(0):color(e.SWATCHES[i(e.PALETTE[o].filter((e=>!t.includes(e))))])},{SWATCHES:w,FRAME:g,COMPLEXITY:b,SYMMETRY:x,SYMMETRY_SCALE:y}=e;let E,S=!1,v=~~(1e9*(new a).random_dec());const M=.75;window.setup=()=>{window.renderComplete=!1,n(v),E=new s,E.setup({random}),window.$features=function(){let e=new a,t={Palette:e.random_bool(.35)?"Vibes":e.random_bool(.3)?"RGB":e.random_bool(.45)?"Crayon":e.random_choice(["Blue","Red","Sketch","Yellow","Green"]),Complexity:e.random_bool(.1)?"Low":e.random_bool(.25)?"High":"Normal",Speed:e.random_bool(.25)?"Normal":"Warp",Symmetry:e.random_bool(.15)?"Square":e.random_bool(.15)?"Wild":"Normal",View:e.random_bool(.25)?"Windows":e.random_choice(["Horizon","Mixed"]),Photogenic:"None",Frame:"Framed",Side:"A"};return["Vibes","RGB"].includes(t.Palette)&&e.random_bool(.1)&&(t.View="None"),["Vibes","RGB"].includes(t.Palette)&&e.random_bool(.33)&&(t.Frame="None"),"Sketch"===t.Palette&&(t.View=e.random_choice(["Windows","Horizon","Mixed"])),["Vibes","RGB"].includes(t.Palette)&&(t.Complexity="Normal"),["Sketch"].includes(t.Palette)&&e.random_bool(.1)&&(t.Complexity="Ultra"),["RGB"].includes(t.Palette)&&(t.Speed="Warp"),t}(),window.$settings={hasCol:random()<.5,hasColAll:random()<.25,horizon:random()<.5?"Mixed":random()<.25?"Horizontal":"Vertical",gravity:random()<.1?i(["Stretch","Split"]):"Normal",rgbShine:random()<.5,blocky:random()<.25||"Sketch"===window.$features.Palette,opacity:["Vibes"].includes(window.$features.Palette)&&random()<.1?.5:1};const[e,t]=((e,t,o)=>((e,t,o,r)=>{const i=Math.min(o/e,r/1);return[e*i,1*i]})(e,0,t,o))(M,windowWidth,windowHeight),o=createCanvas(Math.floor(e),Math.floor(t));pixelDensity(2),o.style("width",""),o.style("height",""),o.style("max-width","100%"),o.style("max-height","100%"),colorMode(HSB,360,100,100),noLoop()};const $=(e,t)=>{clear(),noStroke(),fill(0),rect(0,0,width,height);const o=.005*Math.min(width,height),r=.8*width,i=(width-r)/2,n=e*r;fill("#fff"),rect(i,height/2-o/2,n,o),textSize(3.5*o),text(t,width/2-r/2,height/2-2*o)},P=async(t,o)=>{n(v);const a=window.$features.Palette,s=createGraphics(t,o);s.colorMode(HSB,360,100,100),s.pixelDensity(2),(e=>{const t=window.$features.Palette;let o,r,a;if(["Vibes","RGB"].includes(t)){const e=i(["Blue","Red"]);"Blue"===e&&(a=random(200,250)),"Red"===e&&(a=random(-10,20)),o=color(a%360,100,100),r=color((a+30)%360,100,100)}else o=color(hue(w.paper),saturation(w.paper),brightness(w.paper),window.$settings.opacity),r=color(hue(w.paper),saturation(w.paper),.85*brightness(w.paper),window.$settings.opacity**2);c(0,0,e.width,e.height,o,r,!0,e),"None"===window.$features.View||"Warp"===window.$features.Speed&&((e,t,o,r,i,n,a)=>{const s=[0+o/2,0+r/2];i.noStroke(),n&&(i.fill(n),i.rect(0,0,o,r));const l=[[[0,0],[0+o,0],[s[0],s[1]]],[[0+o,0],[0+o,0+r],[s[0],s[1]]],[[0,0+r],[0+o,0+r],[s[0],s[1]]],[[0,0],[0,0+r],[s[0],s[1]]]];for(const e of l)i.noFill(),i.fill(a),m(e[0],e[1],e[2],random(5,20),random(.5,2),random(1.015,1.15),Math.floor(3*random()),i)})(0,0,e.width,e.height,e,"Vibes"===t?null:w.paper,w.black);const s=50*e.width*.001;["RGB","Vibes"].includes(window.$features.Palette)?E.granulateChannels(s/2,e):E.granulateChannels(s/3,e),n(v),console.info({Features:window.$features,Settings:window.$settings})})(s),await(async(t,o=!0)=>{const r=window.$features.Palette;let i=b[window.$features.Complexity];for(let n=0;n<i;n++){"None"===window.$features.View&&d(t,g,w[["Vibes","RGB"].includes(r)?"black":"paper"]),o&&$(n/i,(S?"SAVING":"LOADING")+" HYPER DRIVE...");const a=Math.pow(1-n/i,1);let s=t.width*random(...y[window.$features.Symmetry])*a;s=constrain(s,0,t.width);let l=s*random(...x[window.$features.Symmetry]);l=constrain(l,0,t.height),"Square"===window.$features.Symmetry&&(l=s*(1/M));const m=.75,b=random(-m,m),E=random(-m,m);let v=(t.width-s)/2+Math.min(t.width,t.height)*b,P=(t.height-l)/2+Math.min(t.width,t.height)*E;if("Stretch"===window.$settings.gravity?P=.5*(t.height-l)+.5*P:"Split"===window.$settings.gravity&&random()<.25&&(P=t.height/2),s<1||l<1)continue;let C=color(n%2==0?u():color(0));if(window.$settings.blocky&&(C=color(n%2==0?color(0):u())),C=color(hue(C),saturation(C),brightness(C),window.$settings.opacity),t.fill(C),t.noStroke(),["Vibes","RGB"].includes(r)){const e=360*random();c(v,P,s,l,color(e,100,100,window.$settings.opacity),color((e+50)%360,100,80,window.$settings.opacity**2),!0,t)}else t.rect(v,P,s,l);let k=random(8,24),R="Horizon"===window.$features.View||"Mixed"===window.$features.View&&random()<.5;if("None"===window.$features.View);else if(R){if(["Vibes","RGB"].includes(r)){const e=360*random();c(v,P,s,l,color(e,100,100,window.$settings.opacity),color((e+50)%360,100,80,window.$settings.opacity**2),!0,t)}else{let e=u();e=color(hue(e),saturation(e),brightness(e),window.$settings.opacity),t.noStroke(),t.fill(e),t.rect(v,P,s,l)}f(v,P,s,l,random(.5,3),k,random()<.5,"Mixed"===window.$settings.horizon?random()<.5:e.HORIZON[window.$settings.horizon],t)}else{let e=n%2!=0?color(0):u();["RGB","Vibes"].includes(window.$features.Palette)||0!==e.levels[0]||0!==C.levels[0]||0!==e.levels[1]||0!==C.levels[1]||0!==e.levels[2]||0!==C.levels[2]||(e=w.paper),t.stroke(e),t.strokeWeight(.0075*Math.min(s,l)),h([v,P,s,l],random(10,15),[.8,1],2,t)}t.stroke(n%2!=0||["Sketch","Green","Blue","Red","Yellow"].includes(window.$features.Palette)?0:u(["paper"])),t.strokeWeight(("Ultra"===window.$features.Complexity?.005:.02125)*Math.min(s,l)),"Framed"===window.$features.Frame&&p([v,P,s,l],random(3,5),[random(.5,.8),random(1,2)],0,t);let T=createImage(2*t.width,2*t.height);T.copy(t,0,0,t.width,t.height,0,0,2*t.width,2*t.height),t.image(T,v,P,s,l,0,0)}})(s);const l=(()=>{switch(window.$features.Palette){case"Vibes":return 115;case"RGB":return 85;default:return 0}})();return["Vibes","RGB"].includes(window.$features.Palette)&&((e,t,o,i)=>{const n=e.get(0,0,e.width,e.height),a=createGraphics(Math.ceil(e.width),Math.ceil(e.height));a.pixelDensity(1),a.image(n,0,0,a.width,a.height),((e,t,o=2.25)=>{e.loadPixels();for(let r=0;r<e.height;r++)for(let i=0;i<e.width;i++){const n=r*e.width*4+4*i;e.pixels[n]=constrain(o*(e.pixels[n]-128)+128,0,255),e.pixels[n+1]=constrain(o*(e.pixels[n+1]-128)+128,0,255),e.pixels[n+2]=constrain(o*(e.pixels[n+2]-128)+128,0,255),e.pixels[n+3]=t}})(a,i),a.pixels=r().blurImage(a.pixels,a.width,a.height,o),a.updatePixels(),e.blendMode(t),e.image(a,0,0,e.width,e.height),a.remove()})(s,"RGB"===a&&window.$settings.rgbShine?SCREEN:BLEND,("RGB"===a?.015:.0225)*s.width,l),(({vW:e,vH:t,vS:o,vP:r,vinScale:i,buf:n})=>{n.loadPixels();const a=2*n.height,s=2*n.width;for(let l=0;l<a;l++){const p=1-l/a;for(let h=0;h<s;h++){const d=l*s*4+4*h,c=dist(h/s*e,l/a*t,.5,.5)*i;let m=Math.pow(p,.25)*.25+.75-Math.pow(c,r)*o;n.pixels[d]=constrain(n.pixels[d]+m,0,255),n.pixels[d+1]=constrain(n.pixels[d+1]+m,0,255),n.pixels[d+2]=constrain(n.pixels[d+2]+m,0,255),n.pixels[d+3]=255}}n.updatePixels(),n.blendMode(BLEND)})({vW:random(.67,1),vH:random(.67,1),vS:random(5,10),vP:random(1.4,1.9),vinScale:random(2,2.75),buf:s}),E.granulateChannels(8*s.width*.001,s),(e=>{let t=Number.MAX_VALUE,o=Number.MIN_VALUE;for(let r=0;r<2*e.height;r++)for(let i=0;i<2*e.width;i++){const n=r*e.width*2*4+4*i;t=Math.min(t,e.pixels[n],e.pixels[n+1],e.pixels[n+2]),o=Math.max(o,e.pixels[n],e.pixels[n+1],e.pixels[n+2])}for(let r=0;r<2*e.height;r++)for(let i=0;i<2*e.width;i++){const n=r*e.width*2*4+4*i,a=255/(o-t);e.pixels[n]=(e.pixels[n]-t)*a,e.pixels[n+1]=(e.pixels[n+1]-t)*a,e.pixels[n+2]=(e.pixels[n+2]-t)*a}e.updatePixels()})(s),d(s,g,w[["Vibes","RGB"].includes(a)?"black":"paper"]),s};window.draw=async()=>{const e=await P(Math.floor(width),Math.floor(height));image(e,0,0),e.remove(),window.renderComplete=!0};const C=async e=>{S=!0,window.renderComplete=!1,console.info("Saving..."),$(0,"SAVING HYPER DRIVE...");const t=await P(Math.floor(e),Math.floor(e*(1/M)));save(t,"hyper_drive_a.png"),console.info("Done."),S=!1,image(t,0,0,width,height),t.remove()};window.keyTyped=()=>{switch(key){case"p":return C(4096);case"s":return C(2048)}}})()})();
(()=>{var e={537:e=>{function t(e,t,o){for(var r=[],i=[],n=[],a=[],s=0;s<t*o;s++)r.push(e[4*s]),i.push(e[4*s+1]),n.push(e[4*s+2]),a.push(e[4*s+3]);return[r,i,n,a]}function o(e,t,o,i,n,a){r(e,t,o,i,(a[0]-1)/2),r(t,e,o,i,(a[1]-1)/2),r(e,t,o,i,(a[2]-1)/2)}function r(e,t,o,r,i){for(var n=0;n<e.length;n++)t[n]=e[n];!function(e,t,o,r,i){for(var n=1/(i+i+1),a=0;a<r;a++){for(var s=a*o,l=s,p=s+i,h=e[s],d=e[s+o-1],c=(i+1)*h,m=0;m<i;m++)c+=e[s+m];for(m=0;m<=i;m++)c+=e[p++]-h,t[s++]=c*n;for(m=i+1;m<o-i;m++)c+=e[p++]-e[l++],t[s++]=c*n;for(m=o-i;m<o;m++)c+=d-e[l++],t[s++]=c*n}}(t,e,o,r,i),function(e,t,o,r,i){for(var n=1/(i+i+1),a=0;a<o;a++){for(var s=a,l=s,p=s+i*o,h=e[s],d=e[s+o*(r-1)],c=(i+1)*h,m=0;m<i;m++)c+=e[s+m*o];for(m=0;m<=i;m++)c+=e[p]-h,t[s]=c*n,p+=o,s+=o;for(m=i+1;m<r-i;m++)c+=e[p]-e[l],t[s]=c*n,l+=o,p+=o,s+=o;for(m=r-i;m<r;m++)c+=d-e[l],t[s]=c*n,l+=o,s+=o}}(e,t,o,r,i)}e.exports={blurImage:function(e,r,i,n){var a=t(e,r,i),s=t(e,r,i),l=function(e,t){var o=Math.sqrt(12*e*e/3+1),r=Math.floor(o);r%2==0&&r--;for(var i=r+2,n=(12*e*e-3*r*r-12*r-9)/(-4*r-4),a=Math.round(n),s=[],l=0;l<3;l++)s.push(l<a?r:i);return s}(n);return o(a[0],s[0],r,i,0,l),o(a[1],s[1],r,i,0,l),o(a[2],s[2],r,i,0,l),function(e,t,o,r,i,n,a){for(var s=0;s<t*o;s++)e[4*s]=r[s],e[4*s+1]=i[s],e[4*s+2]=n[s],e[4*s+3]=a[s]}(e,r,i,s[0],s[1],s[2],s[3]),e}}}},t={};function o(r){var i=t[r];if(void 0!==i)return i.exports;var n=t[r]={exports:{}};return e[r](n,n.exports,o),n.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";const e=JSON.parse('{"SWATCHES":{"paper":"#fff0e0","black":"#000","white":"#fff","teal":"#60cab6","yellow":"#fabf0f","red":"#bf2640","blue":"#1a3966","blue2":"#11358e","blue3":"#4c6ebf","blue4":"#6290ff","green":"#60aa10"},"PALETTE":{"Crayon":["teal","yellow","blue","red","paper"],"Blue":["blue","blue2","blue3","blue4","paper"],"Red":["red","paper"],"Sketch":["paper"],"Yellow":["yellow"],"Green":["green","paper"],"Vibes":[],"RGB":[]},"COMPLEXITY":{"Minimal":15,"Low":30,"Normal":45,"High":60,"Ultra":75},"HORIZON":{"Horizontal":false,"Vertical":true,"Mixed":null},"SYMMETRY":{"Wild":[0.333,3],"Normal":[0.5,2],"Square":[1,1]},"SYMMETRY_SCALE":{"Wild":[0,1],"Normal":[0.5,1],"Square":[0.33,0.67]},"FRAME":0.02}');var t=o(537),r=o.n(t);const i=e=>e[Math.floor(random()*e.length)],n=e=>{randomSeed(e),noiseSeed(e)};class a{constructor(){this.useA=!1;let e=function(e){let t=parseInt(e.substr(0,8),16),o=parseInt(e.substr(8,8),16),r=parseInt(e.substr(16,8),16),i=parseInt(e.substr(24,8),16);return function(){t|=0,o|=0,r|=0,i|=0;let e=(t+o|0)+i|0;return i=i+1|0,t=o^o>>>9,o=r+(r<<3)|0,r=r<<21|r>>>11,r=r+e|0,(e>>>0)/4294967296}};this.prngA=new e(tokenData.hash.substr(2,32)),this.prngB=new e(tokenData.hash.substr(34,32));for(let e=0;e<1e6;e+=2)this.prngA(),this.prngB()}random_dec(){return this.useA=!this.useA,this.useA?this.prngA():this.prngB()}random_num(e,t){return e+(t-e)*this.random_dec()}random_int(e,t){return Math.floor(this.random_num(e,t+1))}random_bool(e){return this.random_dec()<e}random_choice(e){return e[this.random_int(0,e.length-1)]}}class s{version="0.3.0";ignoreWarnings=!1;ignoreErrors=!1;#e;#t;#o;constructor(){this.#e=Math.random,this.#t={frameCount:0},this.#o={frameCount:0,tX_anchor:0,tX:0,tY:0}}setup(e){this.#r("setup",arguments),void 0===e?this.#e=random:"object"==typeof e&&("function"==typeof e.random&&(this.#e=e.random),"boolean"==typeof e.ignoreErrors&&(this.ignoreErrors=e.ignoreErrors),"boolean"==typeof e.ignoreWarnings&&(this.ignoreWarnings=e.ignoreWarnings))}granulateSimple(e,t){let o=round(e);t.loadPixels();let r=t.pixelDensity(),i=t.width*r*4*(t.height*r);for(let e=0;e<i;e+=4){let r=this.#e(-o,o);t.pixels[e]=t.pixels[e]+r,t.pixels[e+1]=t.pixels[e+1]+r,t.pixels[e+2]=t.pixels[e+2]+r}t.updatePixels()}granulateChannels(e,t){let o=round(e);t.loadPixels();let r=t.pixelDensity(),i=t.width*r*4*(t.height*r);for(let e=0;e<i;e+=4)t.pixels[e]=t.pixels[e]+this.#e(-o,o),t.pixels[e+1]=t.pixels[e+1]+this.#e(-o,o),t.pixels[e+2]=t.pixels[e+2]+this.#e(-o,o);t.updatePixels()}granulateFuzzify(e,t,o){this.#r("granulateFuzzy",arguments),loadPixels();let r=round(e),i=t?round(t):2,n=o||!1,a=pixelDensity(),s=4*width*a,l=4*i+s,p=s*(height*a);for(let e=0;e<p;e+=4)pixels[e+l]&&(pixels[e]=round((pixels[e]+pixels[e+l])/2),pixels[e+1]=round((pixels[e+1]+pixels[e+l+1])/2),pixels[e+2]=round((pixels[e+2]+pixels[e+l+2])/2),n&&(pixels[e+3]=round((pixels[e+3]+pixels[e+l+3])/2))),pixels[e]=pixels[e]+this.#e(-r,r),pixels[e+1]=pixels[e+1]+this.#e(-r,r),pixels[e+2]=pixels[e+2]+this.#e(-r,r),n&&(pixels[e+3]=pixels[e+3]+this.#e(-r,r));updatePixels()}textureAnimate(e,t){this.#r("textureAnimate",arguments);let o=t&&t.atFrame?round(t.atFrame):2;if(this.#t.frameCount+=1,this.#t.frameCount>=o){let o=t&&t.amount?round(t.amount):min(width,height),r=floor(this.#e()*o),i=floor(this.#e()*o),n=`${r}px ${i}px`;e instanceof HTMLElement?e.style.backgroundPosition=n:e instanceof SVGElement?(e.style.top=-i+"px",e.style.left=-r+"px"):e instanceof p5.Element&&e.style("background-position",n),this.#t.frameCount=0}}textureOverlay(e,t){this.#r("textureOverlay",arguments);let o=t.context instanceof p5.Graphics,r=t.context?t.context.width:width,i=t.context?t.context.height:height,n=t.mode||MULTIPLY,a=t.reflect||!1,s=t.animate||!1,l=t.animate&&t.animate.atFrame?round(t.animate.atFrame):2,p=t.animate&&t.animate.amount?round(t.animate.amount):min(r,i),h="number"==typeof t.width?t.width:e.width,d="number"==typeof t.height?t.height:e.height;s&&(this.#o.frameCount+=1,this.#o.frameCount>=l&&(this.#o.tX_anchor=-floor(this.#e()*p),this.#o.tY=-floor(this.#e()*p),this.#o.frameCount=0));let c=this.#o.tX_anchor,m=this.#o.tY,f=!0,u=!0;for(blendMode(n);m<i;){for(;c<r;){if(a?(o?t.context.push():push(),f?u?o?t.context.image(e,c,m,h,d):image(e,c,m,h,d):o?(t.context.scale(-1,1),t.context.image(e,-c,m,-h,d)):(scale(-1,1),image(e,-c,m,-h,d)):u?o?(t.context.scale(1,-1),t.context.image(e,c,-m,h,-d)):(scale(1,-1),image(e,c,-m,h,-d)):o?(t.context.scale(-1,-1),t.context.image(e,-c,-m,-h,-d)):(scale(-1,-1),image(e,-c,-m,-h,-d)),o?t.context.pop():pop()):o?t.context.image(e,c,m,h,d):image(e,c,m,h,d),(c+=h)>=r){u=!0,c=this.#o.tX_anchor,m+=d;break}u=!u}f=!f}blendMode(BLEND),o&&t.context.reset()}#r(e,t){if(!this.ignoreErrors)switch(e){case"setup":if(void 0!==t[0]&&"object"!=typeof t[0])throw Error(`[p5.grain] The optional config parameter passed to p5grain.${e}() must be of type object.`);if("object"==typeof t[0]){if(void 0!==t[0].random&&"function"!=typeof t[0].random)throw Error(`[p5.grain] The optional config.random property passed to p5grain.${e}() must be of type function.`);if(void 0!==t[0].ignoreErrors&&"boolean"!=typeof t[0].ignoreErrors)throw Error(`[p5.grain] The optional config.ignoreErrors property passed to p5grain.${e}() must be of type boolean.`);if(void 0!==t[0].ignoreWarnings&&"boolean"!=typeof t[0].ignoreWarnings)throw Error(`[p5.grain] The optional config.ignoreWarnings property passed to p5grain.${e}() must be of type boolean.`)}break;case"granulateSimple":case"granulateChannels":if("number"!=typeof t[0])throw Error(`[p5.grain] The amount parameter passed to ${e}() must be of type number.`);if(void 0!==t[1]&&"boolean"!=typeof t[1])throw Error(`[p5.grain] The alpha parameter passed to ${e}() must be of type boolean.`);break;case"granulateFuzzify":if("number"!=typeof t[0])throw Error(`[p5.grain] The amount parameter passed to ${e}() must be of type number.`);if(void 0!==t[1]&&"number"!=typeof t[1])throw Error(`[p5.grain] The fuzziness parameter passed to ${e}() must be of type number.`);if(void 0!==t[2]&&"boolean"!=typeof t[2])throw Error(`[p5.grain] The alpha parameter passed to ${e}() must be of type boolean.`);break;case"textureAnimate":if(!(t[0]instanceof HTMLElement||t[0]instanceof SVGElement||t[0]instanceof p5.Element))throw Error(`[p5.grain] The textureElement parameter passed to ${e}() must be an instance of HTMLElement, SVGElement or p5.Element.`);if(void 0!==t[1]&&"object"!=typeof t[1])throw Error(`[p5.grain] The optional config parameter passed to ${e}() must be of type object.`);if("object"==typeof t[1]){if(void 0!==t[1].atFrame&&"number"!=typeof t[1].atFrame)throw Error(`[p5.grain] The optional config.atFrame property passed to ${e}() must be of type number.`);if(void 0!==t[1].amount&&"number"!=typeof t[1].amount)throw Error(`[p5.grain] The optional config.amount parameter passed to ${e}() must be of type number.`)}break;case"textureOverlay":if(!(t[0]instanceof p5.Image))throw Error(`[p5.grain] The texture parameter passed to ${e}() must be an instance of p5.Image.`);if(void 0!==t[1]&&"object"!=typeof t[1])throw Error(`[p5.grain] The optional config parameter passed to ${e}() must be of type object.`);if("object"==typeof t[1]){if(void 0!==t[1].width&&"number"!=typeof t[1].width)throw Error(`[p5.grain] The optional config.width property passed to ${e}() must be of type number.`);if(void 0!==t[1].height&&"number"!=typeof t[1].height)throw Error(`[p5.grain] The optional config.height property passed to ${e}() must be of type number.`);if(void 0!==t[1].mode&&"string"!=typeof t[1].mode)throw Error(`[p5.grain] The optional config.mode property passed to ${e}() must be of type string.`);if(void 0!==t[1].context&&!(t[1].context instanceof p5.Graphics))throw Error(`[p5.grain] The optional config.context parameter passed to ${e}() must be an instance of p5.Graphics.`);if(void 0!==t[1].reflect&&"boolean"!=typeof t[1].reflect)throw Error(`[p5.grain] The optional config.reflect property passed to ${e}() must be of type boolean.`)}}}}const l=(e,t,o,r,i=0,n)=>{const[a,s,l]=e,[p,h]=o;for(let e=0;e<t;e++){const e=random(p,h)*l,t=i/180*PI,o=(l-e)*random(),d=random()*r-.5*r,c=random()*r-.5*r;n.line(a+cos(t)*o+d,s-sin(t)*o+c,a+cos(t)*(o+e)+d,s-sin(t)*(o+e)+c)}},p=(e,t,o,r,i)=>{const[n,a,s,p]=e;let h=r/2;l([n-h,a+0,s+2*h],t,o,r,0,i),l([n+0,a-h,p+2*h],t,o,r,-90,i),l([n-h,a+p-0,s+2*h],t,o,r,0,i),l([n+s-0,a-h,p+2*h],t,o,r,-90,i)},h=(e,t,o,r,i)=>{const[n,a,s,p]=e,h=p/t,d=s/t;for(let e=0;e<t;e++)l([n,a+h*e,s],10,o,r,0,i);for(let e=0;e<t;e++)l([n+d*e,a,p],3,o,r,-90,i)},d=(e,t,o)=>{e.noStroke(),e.fill(o);const r=Math.min(e.width,e.height)*t;e.rect(0,0,e.width,r),e.rect(0,e.height-r,e.width,r),e.rect(0,0,r,e.height),e.rect(e.width-r,0,r,e.height)},c=(e,t,o,r,i,n,a,s)=>{if(s.noFill(),s.strokeWeight(2),s.strokeCap(SQUARE),s.colorMode(RGB),a)for(let a=t;a<=t+r;a++){let l=map(a,t,t+r,0,1),p=s.lerpColor(i,n,l);s.stroke(p),s.line(e,a,e+o,a)}else for(let a=e;a<=e+o;a++){let l=map(a,e,e+o,0,1),p=s.lerpColor(i,n,l);s.stroke(p),s.line(a,t,a,t+r)}s.colorMode(HSB,360,100,100)},m=(e,t,o,r=10,i=1,n=1.01,a=0,s)=>{const l=[e,t,o],p=[[l[0],l[1]],[l[1],l[2]],[l[2],l[0]]],[h,d,c]=p,m=dist(...h.flat()),f=dist(...d.flat()),u=dist(...c.flat());switch(a){case 0:{let e=atan2(c[0][1]-h[1][1],c[0][0]-h[1][0]),t=atan2(c[0][1]-h[0][1],c[0][0]-h[0][0]);for(let o=0;o<r;o++){const a=pow(o/r,i),l=[[h[1][0]+cos(e)*f*a,h[1][1]+sin(e)*f*a],[h[0][0]+cos(t)*u*a,h[0][1]+sin(t)*u*a],[h[0][0]+cos(t)*min(u,u*a*n),h[0][1]+sin(t)*min(u,u*a*n)],[h[1][0]+cos(e)*min(f,f*a*n),h[1][1]+sin(e)*min(f,f*a*n)]];s.beginShape(),l.forEach((e=>s.vertex(...e))),s.endShape(CLOSE)}break}case 1:{const e=atan2(c[1][1]-d[1][1],c[1][0]-d[1][0]),t=atan2(c[1][1]-d[0][1],c[1][0]-d[0][0]);for(let o=0;o<r;o++){const a=pow(o/r,i),l=[[d[1][0]+cos(e)*u*a,d[1][1]+sin(e)*u*a],[d[0][0]+cos(t)*m*a,d[0][1]+sin(t)*m*a],[d[0][0]+cos(t)*min(m,m*a*n),d[0][1]+sin(t)*min(m,m*a*n)],[d[1][0]+cos(e)*min(u,u*a*n),d[1][1]+sin(e)*min(u,u*a*n)]];s.beginShape(),l.forEach((e=>s.vertex(...e))),s.endShape(CLOSE)}break}case 2:{const e=atan2(h[1][1]-c[1][1],h[1][0]-c[1][0]),t=atan2(h[1][1]-c[0][1],h[1][0]-c[0][0]);for(let o=0;o<r;o++){const a=pow(o/r,i),l=[[c[1][0]+cos(e)*m*a,c[1][1]+sin(e)*m*a],[c[0][0]+cos(t)*f*a,c[0][1]+sin(t)*f*a],[c[0][0]+cos(t)*min(f,f*a*n),c[0][1]+sin(t)*min(f,f*a*n)],[c[1][0]+cos(e)*min(m,m*a*n),c[1][1]+sin(e)*min(m,m*a*n)]];s.beginShape(),l.forEach((e=>s.vertex(...e))),s.endShape(CLOSE)}break}}},f=(e,t,o,r,i=2,n=10,a=!0,s=!1,l)=>{l.noStroke(),l.fill(0);for(let p=0;p<n;p++)if(s){const s=e+o*Math.pow(p/n,i),h=a?p/n:1-p/n,d=Math.pow(h,2)*(o/n)*1.5+1;l.rect(s,t,d,r)}else{const s=t+r*Math.pow(p/n,i),h=a?p/n:1-p/n,d=Math.pow(h,2)*(r/n)*1.5+1;l.rect(e,s,o,d)}},u=(t=[])=>{const o=window.$features.Palette;return["Vibes","RGB"].includes(o)?window.$settings.hasCol?color(window.$settings.hasColAll?360*random():0,100,100):color(0):color(e.SWATCHES[i(e.PALETTE[o].filter((e=>!t.includes(e))))])},{SWATCHES:w,FRAME:g,COMPLEXITY:b,SYMMETRY:x,SYMMETRY_SCALE:y}=e;let S,E=!1,v=~~(1e9*(new a).random_dec());const $=.75;window.setup=()=>{window.renderComplete=!1,n(v),S=new s,S.setup({random}),window.$features=function(){let e=new a,t={Palette:e.random_bool(.35)?"Vibes":e.random_bool(.3)?"RGB":e.random_bool(.45)?"Crayon":e.random_choice(["Blue","Red","Sketch","Yellow","Green"]),Complexity:e.random_bool(.1)?"Low":e.random_bool(.25)?"High":"Normal",Speed:e.random_bool(.25)?"Normal":"Warp",Symmetry:e.random_bool(.15)?"Square":e.random_bool(.15)?"Wild":"Normal",View:e.random_bool(.25)?"Windows":e.random_choice(["Horizon","Mixed"]),Photogenic:"None",Frame:"Framed",Side:"A"};return["Vibes","RGB"].includes(t.Palette)&&e.random_bool(.1)&&(t.View="None"),["Vibes","RGB"].includes(t.Palette)&&e.random_bool(.33)&&(t.Frame="None"),"Sketch"===t.Palette&&(t.View=e.random_choice(["Windows","Horizon","Mixed"])),["Vibes","RGB"].includes(t.Palette)&&(t.Complexity="Normal"),["Sketch"].includes(t.Palette)&&e.random_bool(.1)&&(t.Complexity="Ultra"),["RGB"].includes(t.Palette)&&(t.Speed="Warp"),t}(),window.$settings={hasCol:random()<.5,hasColAll:random()<.25,horizon:random()<.5?"Mixed":random()<.25?"Horizontal":"Vertical",gravity:random()<.1?i(["Stretch","Split"]):"Normal",rgbShine:random()<.5,blocky:random()<.25||"Sketch"===window.$features.Palette,filterSize:i([0,.03,.06,.09]),opacity:["Vibes"].includes(window.$features.Palette)&&random()<.1?.5:1};const[e,t]=((e,t,o)=>((e,t,o,r)=>{const i=Math.min(o/e,r/1);return[e*i,1*i]})(e,0,t,o))($,windowWidth,windowHeight),o=createCanvas(Math.floor(e),Math.floor(t));pixelDensity(2),o.style("width",""),o.style("height",""),o.style("max-width","100%"),o.style("max-height","100%"),colorMode(HSB,360,100,100),noLoop()};const M=(e,t)=>{clear(),noStroke(),fill(0),rect(0,0,width,height);const o=.005*Math.min(width,height),r=.8*width,i=(width-r)/2,n=e*r;fill("#fff"),rect(i,height/2-o/2,n,o),textSize(3.5*o),text(t,width/2-r/2,height/2-2*o)},P=async(t,o)=>{n(v);const a=window.$features.Palette,s=createGraphics(t,o);s.colorMode(HSB,360,100,100),s.pixelDensity(2),(e=>{const t=window.$features.Palette;let o,r,a;if(["Vibes","RGB"].includes(t)){const e=i(["Blue","Red"]);"Blue"===e&&(a=random(200,250)),"Red"===e&&(a=random(-10,20)),o=color(a%360,100,100),r=color((a+30)%360,100,100)}else o=color(hue(w.paper),saturation(w.paper),brightness(w.paper),window.$settings.opacity),r=color(hue(w.paper),saturation(w.paper),.85*brightness(w.paper),window.$settings.opacity**2);c(0,0,e.width,e.height,o,r,!0,e),"None"===window.$features.View||"Warp"===window.$features.Speed&&((e,t,o,r,i,n,a)=>{const s=[0+o/2,0+r/2];i.noStroke(),n&&(i.fill(n),i.rect(0,0,o,r));const l=[[[0,0],[0+o,0],[s[0],s[1]]],[[0+o,0],[0+o,0+r],[s[0],s[1]]],[[0,0+r],[0+o,0+r],[s[0],s[1]]],[[0,0],[0,0+r],[s[0],s[1]]]];for(const e of l)i.noFill(),i.fill(a),m(e[0],e[1],e[2],random(5,20),random(.5,2),random(1.015,1.15),Math.floor(3*random()),i)})(0,0,e.width,e.height,e,"Vibes"===t?null:w.paper,w.black);const s=50*e.width*.001;["RGB","Vibes"].includes(window.$features.Palette)?S.granulateChannels(s/2,e):S.granulateChannels(s/3,e),n(v),console.info({Features:window.$features,Settings:window.$settings})})(s),await(async(t,o=!0)=>{const r=window.$features.Palette;let i=b[window.$features.Complexity];for(let n=0;n<i;n++){"None"===window.$features.View&&d(t,g,w[["Vibes","RGB"].includes(r)?"black":"paper"]),o&&M(n/i,(E?"SAVING":"LOADING")+" HYPER DRIVE...");const a=Math.pow(1-n/i,1);let s=t.width*random(...y[window.$features.Symmetry])*a;s=constrain(s,0,t.width);let l=s*random(...x[window.$features.Symmetry]);l=constrain(l,0,t.height),"Square"===window.$features.Symmetry&&(l=s*(1/$));const m=.75,b=random(-m,m),S=random(-m,m);let v=(t.width-s)/2+Math.min(t.width,t.height)*b,P=(t.height-l)/2+Math.min(t.width,t.height)*S;if("Stretch"===window.$settings.gravity?P=.5*(t.height-l)+.5*P:"Split"===window.$settings.gravity&&random()<.25&&(P=t.height/2),s<1||l<1)continue;if(s<t.width*window.$settings.filterSize||l<t.height*window.$settings.filterSize)continue;let C=color(n%2==0?u():color(0));if(window.$settings.blocky&&(C=color(n%2==0?color(0):u())),C=color(hue(C),saturation(C),brightness(C),window.$settings.opacity),t.fill(C),t.noStroke(),["Vibes","RGB"].includes(r)){const e=360*random();c(v,P,s,l,color(e,100,100,window.$settings.opacity),color((e+50)%360,100,80,window.$settings.opacity**2),!0,t)}else t.rect(v,P,s,l);let k=random(8,24),R="Horizon"===window.$features.View||"Mixed"===window.$features.View&&random()<.5;if("None"===window.$features.View);else if(R){if(["Vibes","RGB"].includes(r)){const e=360*random();c(v,P,s,l,color(e,100,100,window.$settings.opacity),color((e+50)%360,100,80,window.$settings.opacity**2),!0,t)}else{let e=u();e=color(hue(e),saturation(e),brightness(e),window.$settings.opacity),t.noStroke(),t.fill(e),t.rect(v,P,s,l)}f(v,P,s,l,random(.5,3),k,random()<.5,"Mixed"===window.$settings.horizon?random()<.5:e.HORIZON[window.$settings.horizon],t)}else{let e=n%2!=0?color(0):u();["RGB","Vibes"].includes(window.$features.Palette)||0!==e.levels[0]||0!==C.levels[0]||0!==e.levels[1]||0!==C.levels[1]||0!==e.levels[2]||0!==C.levels[2]||(e=w.paper),t.stroke(e),t.strokeWeight(.0075*Math.min(s,l)),h([v,P,s,l],random(10,15),[.8,1],2,t)}t.stroke(n%2!=0||["Sketch","Green","Blue","Red","Yellow"].includes(window.$features.Palette)?0:u(["paper"])),t.strokeWeight(("Ultra"===window.$features.Complexity?.005:.02125)*Math.min(s,l)),"Framed"===window.$features.Frame&&p([v,P,s,l],random(3,5),[random(.5,.8),random(1,2)],0,t);let T=createImage(2*t.width,2*t.height);T.copy(t,0,0,t.width,t.height,0,0,2*t.width,2*t.height),t.image(T,v,P,s,l,0,0)}})(s);const l=(()=>{switch(window.$features.Palette){case"Vibes":return 115;case"RGB":return 85;default:return 0}})();return["Vibes","RGB"].includes(window.$features.Palette)&&((e,t,o,i)=>{const n=e.get(0,0,e.width,e.height),a=createGraphics(Math.ceil(e.width),Math.ceil(e.height));a.pixelDensity(1),a.image(n,0,0,a.width,a.height),((e,t,o=2.25)=>{e.loadPixels();for(let r=0;r<e.height;r++)for(let i=0;i<e.width;i++){const n=r*e.width*4+4*i;e.pixels[n]=constrain(o*(e.pixels[n]-128)+128,0,255),e.pixels[n+1]=constrain(o*(e.pixels[n+1]-128)+128,0,255),e.pixels[n+2]=constrain(o*(e.pixels[n+2]-128)+128,0,255),e.pixels[n+3]=t}})(a,i),a.pixels=r().blurImage(a.pixels,a.width,a.height,o),a.updatePixels(),e.blendMode(t),e.image(a,0,0,e.width,e.height),a.remove()})(s,"RGB"===a&&window.$settings.rgbShine?SCREEN:BLEND,("RGB"===a?.015:.0225)*s.width,l),(({vW:e,vH:t,vS:o,vP:r,vinScale:i,buf:n})=>{n.loadPixels();const a=2*n.height,s=2*n.width;for(let l=0;l<a;l++){const p=1-l/a;for(let h=0;h<s;h++){const d=l*s*4+4*h,c=dist(h/s*e,l/a*t,.5,.5)*i;let m=Math.pow(p,.25)*.25+.75-Math.pow(c,r)*o;n.pixels[d]=constrain(n.pixels[d]+m,0,255),n.pixels[d+1]=constrain(n.pixels[d+1]+m,0,255),n.pixels[d+2]=constrain(n.pixels[d+2]+m,0,255),n.pixels[d+3]=255}}n.updatePixels(),n.blendMode(BLEND)})({vW:random(.67,1),vH:random(.67,1),vS:random(5,10),vP:random(1.4,1.9),vinScale:random(2,2.75),buf:s}),S.granulateChannels(8*s.width*.001,s),(e=>{let t=Number.MAX_VALUE,o=Number.MIN_VALUE;for(let r=0;r<2*e.height;r++)for(let i=0;i<2*e.width;i++){const n=r*e.width*2*4+4*i;t=Math.min(t,e.pixels[n],e.pixels[n+1],e.pixels[n+2]),o=Math.max(o,e.pixels[n],e.pixels[n+1],e.pixels[n+2])}for(let r=0;r<2*e.height;r++)for(let i=0;i<2*e.width;i++){const n=r*e.width*2*4+4*i,a=255/(o-t);e.pixels[n]=(e.pixels[n]-t)*a,e.pixels[n+1]=(e.pixels[n+1]-t)*a,e.pixels[n+2]=(e.pixels[n+2]-t)*a}e.updatePixels()})(s),d(s,g,w[["Vibes","RGB"].includes(a)?"black":"paper"]),s};window.draw=async()=>{const e=await P(Math.floor(width),Math.floor(height));image(e,0,0),e.remove(),window.renderComplete=!0};const C=async e=>{E=!0,window.renderComplete=!1,console.info("Saving..."),M(0,"SAVING HYPER DRIVE...");const t=await P(Math.floor(e),Math.floor(e*(1/$)));save(t,"hyper_drive_a.png"),console.info("Done."),E=!1,image(t,0,0,width,height),t.remove()};window.keyTyped=()=>{switch(key){case"p":return C(4096);case"s":return C(2048)}}})()})();
Hyper Drive is based on the mathematics of recursion. Scale symmetry is used to create patterns that repeat at ever-smaller intervals, creating the illusion of infinite depth and complexity. The rule for the recursive loop is incredibly simple. A box is drawn, then a snapshot of the full canvas is resized to cover the boundary. As this process is repeated, small variations in position create endless fractals. This project is an experimental cross-chain collection, with a fully-generative A-side published via Art Blocks on Ethereum and an AI-based image composition B-side published via Fxhash on Tezos. The artwork symbolizes the great divides we must cross, the connections we make along the way, and the disconnections we feel. We move through the world as the world moves through us.