(function e$$0(y,Q,k){function g(a,b){if(!Q[a]){if(!y[a]){var e="function"==typeof require&&require;if(!b&&e)return e(a,!0);if(n)return n(a,!0);throw Error("Cannot find module '"+a+"'");}e=Q[a]={exports:{}};y[a][0].call(e.exports,function(c){var b=y[a][1][c];return g(b?b:c)},e,e.exports,e$$0,y,Q,k)}return Q[a].exports}for(var n="function"==typeof require&&require,l=0;lr.$methodArgsIndex?r.$overloads[r.$methodArgsIndex]:null)||r.$defaultOverload).apply(this,arguments)};r.$overloads=p;"$methodArgsIndex"in c&&(r.$methodArgsIndex= c.$methodArgsIndex);r.$defaultOverload=m;r.name=e;a[e]=r}}else a[e]=c}function l(b,e){function c(c){a.defineProperty(b,c,{get:function(){return e[c]},set:function(d){e[c]=d},enumerable:!0})}var m=[],p;for(p in e)"function"===typeof e[p]?n(b,p,e[p]):"$"===p.charAt(0)||p in b||m.push(p);for(;0 d.$methodArgsIndex?d.$overloads[d.$methodArgsIndex]:null)||d.$defaultOverload).apply(this,arguments)},g=[];p&&(g[p.length]=p);g[r]=c;d.$overloads=g;d.$defaultOverload=p||c;m&&(d.$methodArgsIndex=r);d.name=e;a[e]=d}}else a[e]=c};a.createJavaArray=function(b,e){var c=null,m=null;if("string"===typeof b)if("boolean"===b)m=!1;else{var p;p="string"!==typeof b?!1:-1!=="byte int char color float long double".split(" ").indexOf(b);p&&(m=0)}if("number"===typeof e[0])if(p=0|e[0],1>=e.length){c=[];c.length=p; for(var r=0;r "+b);if(v===g)if(0===p.length)try{return new k(c,m.join("\n"))}catch(md){throw console.log("Processing.js: Unable to execute pjs sketch."),md;}else throw"Processing.js: Unable to load pjs sketch files: "+p.join("\n");}if("#"===a.charAt(0)){var ca=l.getElementById(a.substring(1));ca?n(ca.text||ca.textContent):n("","Unable to load pjs sketch: element with id '"+ a.substring(1)+"' was not found")}else e(a,n)}for(var m=[],p=[],g=d.length,v=0,fa=0;faa||a>b.length)throw"Index out of bounds for addAll: "+a+" greater or equal than "+b.length;for(m=new ObjectIterator(c);m.hasNext();)b.splice(a++,0,m.next())}else for(m=new ObjectIterator(a);m.hasNext();)b.push(m.next())};this.set=function(){if(2===arguments.length){var a= arguments[0];if("number"===typeof a)if(0<=a&&ac?d.length+c:c}function b(){if(!(k<=r*d.length)){for(var c=[],b=0;b=d.length)p= !0;else if(void 0===d[e]||m>=d[e].length)m=-1,++e;else break}var e=0,m=-1,p=!1,r;this.hasNext=function(){return!p};this.next=function(){r=c(d[e][m]);b();return r};this.remove=function(){void 0!==r&&(a(r),--m,b())};b()}function c(c,d,a){this.clear=function(){ca.clear()};this.contains=function(c){return d(c)};this.containsAll=function(c){for(c=c.iterator();c.hasNext();)if(!this.contains(c.next()))return!1;return!0};this.isEmpty=function(){return ca.isEmpty()};this.iterator=function(){return new e(c, a)};this.remove=function(c){return this.contains(c)?(a(c),!0):!1};this.removeAll=function(c){for(c=c.iterator();c.hasNext();){var d=c.next();this.contains(d)&&a(d)}return!0};this.retainAll=function(c){for(var d=this.iterator(),b=[];d.hasNext();){var e=d.next();c.contains(e)||b.push(e)}for(c=0;cdbflkhyjqpg";l.body.appendChild(p);var d=m.width,k=m.height,m=k/2;r.fillStyle="white";r.fillRect(0,0,d,k);r.fillStyle="black";r.fillText("dbflkhyjqpg",0,m);for(var k=r.getImageData(0,0,d,k).data,n=0,G=4*d,A=k.length;++n=2*this.size&&(this.leading=Math.round(m/2)));l.body.removeChild(p);c=this.caching?r:void 0;this.context2d=c;this.css=this.getCSSDefinition();this.context2d&&(this.context2d.font=this.css)}var l=k.Browser.document,a=k.noop;n.prototype.caching=!0;n.prototype.getCSSDefinition=function(a,e){a===g&&(a=this.size+"px");e===g&&(e=this.leading+"px");return[this.style,"normal", this.weight,a+"/"+e,this.family].join(" ")};n.prototype.measureTextWidth=function(a){return this.context2d.measureText(a).width};n.prototype.measureTextWidthFallback=function(a){var e=l.createElement("canvas").getContext("2d");e.font=this.css;return e.measureText(a).width};n.PFontCache={length:0};n.get=function(a,e){e=(10*e+0.5|0)/10;var c=n.PFontCache,m=a+"/"+e;if(!c[m]){c[m]=new n(a,e);c.length++;if(50===c.length){n.prototype.measureTextWidth=n.prototype.measureTextWidthFallback;n.prototype.caching= !1;for(var p in c)"length"!==p&&(c[p].context2d=null);return new n(a,e)}if(400===c.length)return n.PFontCache={},n.get=n.getFallback,new n(a,e)}return c[m]};n.getFallback=function(a,e){return new n(a,e)};n.list=function(){return["sans-serif","serif","monospace","fantasy","cursive"]};n.preloading={template:{},initialized:!1,initialize:function(){var a=l.createElement("style");a.setAttribute("type","text/css");a.innerHTML='@font-face {\n font-family: "PjsEmptyFont";\n src: url(\'data:application/x-font-ttf;base64,'+ function(){return"#E3KAI2wAgT1MvMg7Eo3VmNtYX7ABi3CxnbHlm7Abw3kaGVhZ7ACs3OGhoZWE7A53CRobXR47AY3AGbG9jYQ7G03Bm1heH7ABC3CBuYW1l7Ae3AgcG9zd7AI3AE#B3AQ2kgTY18PPPUACwAg3ALSRoo3#yld0xg32QAB77#E777773B#E3C#I#Q77773E#Q7777777772CMAIw7AB77732B#M#Q3wAB#g3B#E#E2BB//82BB////w#B7#gAEg3E77x2B32B#E#Q#MTcBAQ32gAe#M#QQJ#E32M#QQJ#I#g32Q77#".replace(/[#237]/g,function(a){return"AAAAAAAA".substr(~~a?7-a:6)})}()+"')\n format('truetype');\n}";l.head.appendChild(a);a=l.createElement("span");a.style.cssText='position: absolute; top: 0; left: 0; opacity: 0; font-family: "PjsEmptyFont", fantasy;'; a.innerHTML="AAAAAAAA";l.body.appendChild(a);this.template=a;this.initialized=!0},getElementWidth:function(a){return l.defaultView.getComputedStyle(a,"").getPropertyValue("width")},timeAttempted:0,pending:function(a){this.initialized||this.initialize();for(var e,c,m=this.getElementWidth(this.template),p=0;pthis.timeAttempted&&c===m)return this.timeAttempted+=a,!0;l.body.removeChild(e);this.fontList.splice(p--,1);this.timeAttempted= 0}return 0===this.fontList.length?!1:!0},fontList:[],addedList:{},add:function(a){this.initialized||this.initialize();var e="object"===typeof a?a.fontFace:a;a="object"===typeof a?a.url:a;if(!this.addedList[e]){var c=l.createElement("style");c.setAttribute("type","text/css");c.innerHTML="@font-face{\n font-family: '"+e+"';\n src: url('"+a+"');\n}\n";l.head.appendChild(c);this.addedList[e]=!0;a=l.createElement("span");a.style.cssText="position: absolute; top: 0; left: 0; opacity: 0;";a.style.fontFamily= '"'+e+'", "PjsEmptyFont", fantasy';a.innerHTML="AAAAAAAA";l.body.appendChild(a);this.fontList.push(a)}}};return n}},{}],13:[function(D,y,Q){y.exports=function(k,g){var n=k.p,l=function(){0===arguments.length?this.reset():1===arguments.length&&arguments[0]instanceof l?this.set(arguments[0].array()):6===arguments.length&&this.set(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5])};l.prototype={set:function(){if(6===arguments.length){var a=arguments;this.set([a[0],a[1],a[2], a[3],a[4],a[5]])}else 1===arguments.length&&arguments[0]instanceof l?this.elements=arguments[0].array():1===arguments.length&&arguments[0]instanceof Array&&(this.elements=arguments[0].slice())},get:function(){var a=new l;a.set(this.elements);return a},reset:function(){this.set([1,0,0,0,1,0])},array:function(){return this.elements.slice()},translate:function(a,b){this.elements[2]=a*this.elements[0]+b*this.elements[1]+this.elements[2];this.elements[5]=a*this.elements[3]+b*this.elements[4]+this.elements[5]}, invTranslate:function(a,b){this.translate(-a,-b)},transpose:function(){},mult:function(a,b){var e,c;a instanceof PVector?(e=a.x,c=a.y,b||(b=new PVector)):a instanceof Array&&(e=a[0],c=a[1],b||(b=[]));b instanceof Array?(b[0]=this.elements[0]*e+this.elements[1]*c+this.elements[2],b[1]=this.elements[3]*e+this.elements[4]*c+this.elements[5]):b instanceof PVector&&(b.x=this.elements[0]*e+this.elements[1]*c+this.elements[2],b.y=this.elements[3]*e+this.elements[4]*c+this.elements[5],b.z=0);return b},multX:function(a, b){return a*this.elements[0]+b*this.elements[1]+this.elements[2]},multY:function(a,b){return a*this.elements[3]+b*this.elements[4]+this.elements[5]},skewX:function(a){this.apply(1,0,1,a,0,0)},skewY:function(a){this.apply(1,0,1,0,a,0)},shearX:function(a){this.apply(1,0,1,Math.tan(a),0,0)},shearY:function(a){this.apply(1,0,1,0,Math.tan(a),0)},determinant:function(){return this.elements[0]*this.elements[4]-this.elements[1]*this.elements[3]},invert:function(){var a=this.determinant();if(Math.abs(a)>PConstants.MIN_INT){var b= this.elements[0],e=this.elements[1],c=this.elements[2],m=this.elements[3],p=this.elements[4],r=this.elements[5];this.elements[0]=p/a;this.elements[3]=-m/a;this.elements[1]=-e/a;this.elements[4]=b/a;this.elements[2]=(e*r-p*c)/a;this.elements[5]=(m*c-b*r)/a;return!0}return!1},scale:function(a,b){a&&!b&&(b=a);a&&b&&(this.elements[0]*=a,this.elements[1]*=b,this.elements[3]*=a,this.elements[4]*=b)},invScale:function(a,b){a&&!b&&(b=a);this.scale(1/a,1/b)},apply:function(){var a;1===arguments.length&&arguments[0]instanceof l?a=arguments[0].array():6===arguments.length?a=Array.prototype.slice.call(arguments):1===arguments.length&&arguments[0]instanceof Array&&(a=arguments[0]);for(var b=[0,0,this.elements[2],0,0,this.elements[5]],e=0,c=0;2>c;c++)for(var m=0;3>m;m++,e++)b[e]+=this.elements[3*c+0]*a[m+0]+this.elements[3*c+1]*a[m+3];this.elements=b.slice()},preApply:function(){var a;1===arguments.length&&arguments[0]instanceof l?a=arguments[0].array():6===arguments.length?a=Array.prototype.slice.call(arguments):1===arguments.length&& arguments[0]instanceof Array&&(a=arguments[0]);var b=[0,0,a[2],0,0,a[5]];b[2]=a[2]+this.elements[2]*a[0]+this.elements[5]*a[1];b[5]=a[5]+this.elements[2]*a[3]+this.elements[5]*a[4];b[0]=this.elements[0]*a[0]+this.elements[3]*a[1];b[3]=this.elements[0]*a[3]+this.elements[3]*a[4];b[1]=this.elements[1]*a[0]+this.elements[4]*a[1];b[4]=this.elements[1]*a[3]+this.elements[4]*a[4];this.elements=b.slice()},rotate:function(a){var b=Math.cos(a);a=Math.sin(a);var e=this.elements[0],c=this.elements[1];this.elements[0]= b*e+a*c;this.elements[1]=-a*e+b*c;e=this.elements[3];c=this.elements[4];this.elements[3]=b*e+a*c;this.elements[4]=-a*e+b*c},rotateZ:function(a){this.rotate(a)},invRotateZ:function(a){this.rotateZ(a-Math.PI)},print:function(){var a=printMatrixHelper(this.elements),a=""+n.nfs(this.elements[0],a,4)+" "+n.nfs(this.elements[1],a,4)+" "+n.nfs(this.elements[2],a,4)+"\n"+n.nfs(this.elements[3],a,4)+" "+n.nfs(this.elements[4],a,4)+" "+n.nfs(this.elements[5],a,4)+"\n\n";n.println(a)}};return l}},{}],14:[function(D, y,Q){y.exports=function(k,g){var n=k.p,l=function(){this.reset()};l.prototype={set:function(){16===arguments.length?this.elements=Array.prototype.slice.call(arguments):1===arguments.length&&arguments[0]instanceof l?this.elements=arguments[0].array():1===arguments.length&&arguments[0]instanceof Array&&(this.elements=arguments[0].slice())},get:function(){var a=new l;a.set(this.elements);return a},reset:function(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]},array:function(){return this.elements.slice()}, translate:function(a,b,e){e===g&&(e=0);this.elements[3]+=a*this.elements[0]+b*this.elements[1]+e*this.elements[2];this.elements[7]+=a*this.elements[4]+b*this.elements[5]+e*this.elements[6];this.elements[11]+=a*this.elements[8]+b*this.elements[9]+e*this.elements[10];this.elements[15]+=a*this.elements[12]+b*this.elements[13]+e*this.elements[14]},transpose:function(){var a=this.elements[4];this.elements[4]=this.elements[1];this.elements[1]=a;a=this.elements[8];this.elements[8]=this.elements[2];this.elements[2]= a;a=this.elements[6];this.elements[6]=this.elements[9];this.elements[9]=a;a=this.elements[3];this.elements[3]=this.elements[12];this.elements[12]=a;a=this.elements[7];this.elements[7]=this.elements[13];this.elements[13]=a;a=this.elements[11];this.elements[11]=this.elements[14];this.elements[14]=a},mult:function(a,b){var e,c,m,p;a instanceof PVector?(e=a.x,c=a.y,m=a.z,p=1,b||(b=new PVector)):a instanceof Array&&(e=a[0],c=a[1],m=a[2],p=a[3]||1,!b||3!==b.length&&4!==b.length)&&(b=[0,0,0]);b instanceof Array&&(3===b.length?(b[0]=this.elements[0]*e+this.elements[1]*c+this.elements[2]*m+this.elements[3],b[1]=this.elements[4]*e+this.elements[5]*c+this.elements[6]*m+this.elements[7],b[2]=this.elements[8]*e+this.elements[9]*c+this.elements[10]*m+this.elements[11]):4===b.length&&(b[0]=this.elements[0]*e+this.elements[1]*c+this.elements[2]*m+this.elements[3]*p,b[1]=this.elements[4]*e+this.elements[5]*c+this.elements[6]*m+this.elements[7]*p,b[2]=this.elements[8]*e+this.elements[9]*c+this.elements[10]*m+ this.elements[11]*p,b[3]=this.elements[12]*e+this.elements[13]*c+this.elements[14]*m+this.elements[15]*p));b instanceof PVector&&(b.x=this.elements[0]*e+this.elements[1]*c+this.elements[2]*m+this.elements[3],b.y=this.elements[4]*e+this.elements[5]*c+this.elements[6]*m+this.elements[7],b.z=this.elements[8]*e+this.elements[9]*c+this.elements[10]*m+this.elements[11]);return b},preApply:function(){var a;1===arguments.length&&arguments[0]instanceof l?a=arguments[0].array():16===arguments.length?a=Array.prototype.slice.call(arguments): 1===arguments.length&&arguments[0]instanceof Array&&(a=arguments[0]);for(var b=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],e=0,c=0;4>c;c++)for(var m=0;4>m;m++,e++)b[e]+=this.elements[m+0]*a[4*c+0]+this.elements[m+4]*a[4*c+1]+this.elements[m+8]*a[4*c+2]+this.elements[m+12]*a[4*c+3];this.elements=b.slice()},apply:function(){var a;1===arguments.length&&arguments[0]instanceof l?a=arguments[0].array():16===arguments.length?a=Array.prototype.slice.call(arguments):1===arguments.length&&arguments[0]instanceof Array&& (a=arguments[0]);for(var b=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],e=0,c=0;4>c;c++)for(var m=0;4>m;m++,e++)b[e]+=this.elements[4*c+0]*a[m+0]+this.elements[4*c+1]*a[m+4]+this.elements[4*c+2]*a[m+8]+this.elements[4*c+3]*a[m+12];this.elements=b.slice()},rotate:function(a,b,e,c){if(e){var m=Math.cos(a);a=Math.sin(a);var p=1-m;this.apply(p*b*b+m,p*b*e-a*c,p*b*c+a*e,0,p*b*e+a*c,p*e*e+m,p*e*c-a*b,0,p*b*c-a*e,p*e*c+a*b,p*c*c+m,0,0,0,0,1)}else this.rotateZ(a)},invApply:function(){inverseCopy===g&&(inverseCopy=new l); var a=arguments;inverseCopy.set(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15]);if(!inverseCopy.invert())return!1;this.preApply(inverseCopy);return!0},rotateX:function(a){var b=Math.cos(a);a=Math.sin(a);this.apply([1,0,0,0,0,b,-a,0,0,a,b,0,0,0,0,1])},rotateY:function(a){var b=Math.cos(a);a=Math.sin(a);this.apply([b,0,a,0,0,1,0,0,-a,0,b,0,0,0,0,1])},rotateZ:function(a){var b=Math.cos(a);a=Math.sin(a);this.apply([b,-a,0,0,a,b,0,0,0,0,1,0,0,0,0,1])},scale:function(a, b,e){!a||b||e?a&&(b&&!e)&&(e=1):b=e=a;a&&(b&&e)&&(this.elements[0]*=a,this.elements[1]*=b,this.elements[2]*=e,this.elements[4]*=a,this.elements[5]*=b,this.elements[6]*=e,this.elements[8]*=a,this.elements[9]*=b,this.elements[10]*=e,this.elements[12]*=a,this.elements[13]*=b,this.elements[14]*=e)},skewX:function(a){a=Math.tan(a);this.apply(1,a,0,0,0,1,0,0,0,0,1,0,0,0,0,1)},skewY:function(a){a=Math.tan(a);this.apply(1,0,0,0,a,1,0,0,0,0,1,0,0,0,0,1)},shearX:function(a){a=Math.tan(a);this.apply(1,a,0,0, 0,1,0,0,0,0,1,0,0,0,0,1)},shearY:function(a){a=Math.tan(a);this.apply(1,0,0,0,a,1,0,0,0,0,1,0,0,0,0,1)},multX:function(a,b,e,c){return e?c?this.elements[0]*a+this.elements[1]*b+this.elements[2]*e+this.elements[3]*c:this.elements[0]*a+this.elements[1]*b+this.elements[2]*e+this.elements[3]:this.elements[0]*a+this.elements[1]*b+this.elements[3]},multY:function(a,b,e,c){return e?c?this.elements[4]*a+this.elements[5]*b+this.elements[6]*e+this.elements[7]*c:this.elements[4]*a+this.elements[5]*b+this.elements[6]* e+this.elements[7]:this.elements[4]*a+this.elements[5]*b+this.elements[7]},multZ:function(a,b,e,c){return c?this.elements[8]*a+this.elements[9]*b+this.elements[10]*e+this.elements[11]*c:this.elements[8]*a+this.elements[9]*b+this.elements[10]*e+this.elements[11]},multW:function(a,b,e,c){return c?this.elements[12]*a+this.elements[13]*b+this.elements[14]*e+this.elements[15]*c:this.elements[12]*a+this.elements[13]*b+this.elements[14]*e+this.elements[15]},invert:function(){var a=this.elements[0]*this.elements[5]- this.elements[1]*this.elements[4],b=this.elements[0]*this.elements[6]-this.elements[2]*this.elements[4],e=this.elements[0]*this.elements[7]-this.elements[3]*this.elements[4],c=this.elements[1]*this.elements[6]-this.elements[2]*this.elements[5],m=this.elements[1]*this.elements[7]-this.elements[3]*this.elements[5],p=this.elements[2]*this.elements[7]-this.elements[3]*this.elements[6],r=this.elements[8]*this.elements[13]-this.elements[9]*this.elements[12],d=this.elements[8]*this.elements[14]-this.elements[10]* this.elements[12],g=this.elements[8]*this.elements[15]-this.elements[11]*this.elements[12],k=this.elements[9]*this.elements[14]-this.elements[10]*this.elements[13],n=this.elements[9]*this.elements[15]-this.elements[11]*this.elements[13],l=this.elements[10]*this.elements[15]-this.elements[11]*this.elements[14],y=a*l-b*n+e*k+c*g-m*d+p*r;if(1E-9>=Math.abs(y))return!1;var v=[];v[0]=+this.elements[5]*l-this.elements[6]*n+this.elements[7]*k;v[4]=-this.elements[4]*l+this.elements[6]*g-this.elements[7]*d; v[8]=+this.elements[4]*n-this.elements[5]*g+this.elements[7]*r;v[12]=-this.elements[4]*k+this.elements[5]*d-this.elements[6]*r;v[1]=-this.elements[1]*l+this.elements[2]*n-this.elements[3]*k;v[5]=+this.elements[0]*l-this.elements[2]*g+this.elements[3]*d;v[9]=-this.elements[0]*n+this.elements[1]*g-this.elements[3]*r;v[13]=+this.elements[0]*k-this.elements[1]*d+this.elements[2]*r;v[2]=+this.elements[13]*p-this.elements[14]*m+this.elements[15]*c;v[6]=-this.elements[12]*p+this.elements[14]*e-this.elements[15]* b;v[10]=+this.elements[12]*m-this.elements[13]*e+this.elements[15]*a;v[14]=-this.elements[12]*c+this.elements[13]*b-this.elements[14]*a;v[3]=-this.elements[9]*p+this.elements[10]*m-this.elements[11]*c;v[7]=+this.elements[8]*p-this.elements[10]*e+this.elements[11]*b;v[11]=-this.elements[8]*m+this.elements[9]*e-this.elements[11]*a;v[15]=+this.elements[8]*c-this.elements[9]*b+this.elements[10]*a;a=1/y;v[0]*=a;v[1]*=a;v[2]*=a;v[3]*=a;v[4]*=a;v[5]*=a;v[6]*=a;v[7]*=a;v[8]*=a;v[9]*=a;v[10]*=a;v[11]*=a;v[12]*= a;v[13]*=a;v[14]*=a;v[15]*=a;this.elements=v.slice();return!0},toString:function(){for(var a="",b=0;15>b;b++)a+=this.elements[b]+", ";return a+=this.elements[15]},print:function(){var a=printMatrixHelper(this.elements),a=""+n.nfs(this.elements[0],a,4)+" "+n.nfs(this.elements[1],a,4)+" "+n.nfs(this.elements[2],a,4)+" "+n.nfs(this.elements[3],a,4)+"\n"+n.nfs(this.elements[4],a,4)+" "+n.nfs(this.elements[5],a,4)+" "+n.nfs(this.elements[6],a,4)+" "+n.nfs(this.elements[7],a,4)+"\n"+n.nfs(this.elements[8], a,4)+" "+n.nfs(this.elements[9],a,4)+" "+n.nfs(this.elements[10],a,4)+" "+n.nfs(this.elements[11],a,4)+"\n"+n.nfs(this.elements[12],a,4)+" "+n.nfs(this.elements[13],a,4)+" "+n.nfs(this.elements[14],a,4)+" "+n.nfs(this.elements[15],a,4)+"\n\n";n.println(a)},invTranslate:function(a,b,e){this.preApply(1,0,0,-a,0,1,0,-b,0,0,1,-e,0,0,0,1)},invRotateX:function(a){var b=Math.cos(-a);a=Math.sin(-a);this.preApply([1,0,0,0,0,b,-a,0,0,a,b,0,0,0,0,1])},invRotateY:function(a){var b=Math.cos(-a);a=Math.sin(-a); this.preApply([b,0,a,0,0,1,0,0,-a,0,b,0,0,0,0,1])},invRotateZ:function(a){var b=Math.cos(-a);a=Math.sin(-a);this.preApply([b,-a,0,0,a,b,0,0,0,0,1,0,0,0,0,1])},invScale:function(a,b,e){this.preApply([1/a,0,0,0,0,1/b,0,0,0,0,1/e,0,0,0,0,1])}};return l}},{}],15:[function(D,y,Q){y.exports=function(k){var g=k.PConstants,n=k.PMatrix2D,l=k.PMatrix3D;k=function(a){this.family=a||g.GROUP;this.style=this.visible=!0;this.children=[];this.nameTable=[];this.params=[];this.name="";this.parent=this.height=this.width= this.close=this.kind=this.matrix=this.image=null};k.prototype={isVisible:function(){return this.visible},setVisible:function(a){this.visible=a},disableStyle:function(){this.style=!1;for(var a=0,b=this.children.length;a, it's <"+this.element.getName()+">";}else 2===arguments.length&&("string"===typeof arguments[1]?-1 tag of this file.";this.parseColors(this.element);this.parseChildren(this.element)};e.prototype=new l;e.prototype.parseMatrix=function(){function c(c){var a=[];c.replace(/\((.*?)\)/,function(){return function(c,d){a=d.replace(/,+/g," ").split(/\s+/)}}()); return a}return function(a){this.checkMatrix(2);var b=[];a.replace(/\s*(\w+)\((.*?)\)/g,function(c){b.push(g.trim(c))});if(0===b.length)return null;a=0;for(var e=b.length;a=v||97<=v&&122>=v){u=y;y++;if(y=v||97<=v&&100>=v||102<=v&&122>=v)&&!1===D;)32===v?""!==fa&&(q.push(parseFloat(fa)),fa=""):45===v?101===c[y-1].charCodeAt(0)?fa+=c[y].toString():(""!== fa&&q.push(parseFloat(fa)),fa=c[y].toString()):fa+=c[y].toString(),y++,y===c.length?D=!0:v=c[y].charCodeAt(0);""!==fa&&(q.push(parseFloat(fa)),fa="");nc=c[u];v=nc.charCodeAt(0);if(77===v){if(2<=q.length&&0===q.length%2&&(a=q[0],b=q[1],this.parsePathMoveto(a,b),2this.params[2]||0>this.params[3])throw"svg error: negative width or height found while parsing ";};e.prototype.parseEllipse=function(a){this.kind=n.ELLIPSE;this.family=n.PRIMITIVE;this.params=[];this.params[0]=this.element.getFloatAttribute("cx")|0;this.params[1]=this.element.getFloatAttribute("cy")|0;var b;if(a){if(a=b=this.element.getFloatAttribute("r"), 0>a)throw"svg error: negative radius found while parsing ";}else if(a=this.element.getFloatAttribute("rx"),b=this.element.getFloatAttribute("ry"),0>a||0>b)throw"svg error: negative x-axis radius or y-axis radius found while parsing ";this.params[0]-=a;this.params[1]-=b;this.params[2]=2*a;this.params[3]=2*b};e.prototype.parseLine=function(){this.kind=n.LINE;this.family=n.PRIMITIVE;this.params=[];this.params[0]=this.element.getFloatAttribute("x1");this.params[1]=this.element.getFloatAttribute("y1"); this.params[2]=this.element.getFloatAttribute("x2");this.params[3]=this.element.getFloatAttribute("y2")};e.prototype.parseColors=function(a){a.hasAttribute("opacity")&&this.setOpacity(a.getAttribute("opacity"));a.hasAttribute("stroke")&&this.setStroke(a.getAttribute("stroke"));a.hasAttribute("stroke-width")&&this.setStrokeWeight(a.getAttribute("stroke-width"));a.hasAttribute("stroke-linejoin")&&this.setStrokeJoin(a.getAttribute("stroke-linejoin"));a.hasAttribute("stroke-linecap")&&this.setStrokeCap(a.getStringAttribute("stroke-linecap")); a.hasAttribute("fill")&&this.setFill(a.getStringAttribute("fill"));if(a.hasAttribute("style")){a=a.getStringAttribute("style").toString().split(";");for(var b=0,e=a.length;bb?a:a.indexOf("pt")===b?1.25*parseFloat(a.substring(0,b)):a.indexOf("pc")=== b?15*parseFloat(a.substring(0,b)):a.indexOf("mm")===b?3.543307*parseFloat(a.substring(0,b)):a.indexOf("cm")===b?35.43307*parseFloat(a.substring(0,b)):a.indexOf("in")===b?90*parseFloat(a.substring(0,b)):a.indexOf("px")===b?parseFloat(a.substring(0,b)):parseFloat(a)};return e}},{}],17:[function(D,y,Q){y.exports=function(k,g){function n(a,c,b){this.x=a||0;this.y=c||0;this.z=b||0}function l(a){return function(c,b){var p=c.get();p[a](b);return p}}var a=k.PConstants;n.fromAngle=function(a,c){if(c===g|| null===c)c=new n;c.x=Math.cos(a);c.y=Math.sin(a);return c};n.random2D=function(b){return n.fromAngle(Math.random()*a.TWO_PI,b)};n.random3D=function(b){var c=Math.random()*a.TWO_PI,m=2*Math.random()-1,p=Math.sqrt(1-m*m),r=p*Math.cos(c),c=p*Math.sin(c);b===g||null===b?b=new n(r,c,m):b.set(r,c,m);return b};n.dist=function(a,c){return a.dist(c)};n.dot=function(a,c){return a.dot(c)};n.cross=function(a,c){return a.cross(c)};n.sub=function(a,c){return new n(a.x-c.x,a.y-c.y,a.z-c.z)};n.angleBetween=function(a, c){return Math.acos(a.dot(c)/(a.mag()*c.mag()))};n.lerp=function(a,c,b){a=new n(a.x,a.y,a.z);a.lerp(c,b);return a};n.prototype={set:function(a,c,b){1===arguments.length?this.set(a.x||a[0]||0,a.y||a[1]||0,a.z||a[2]||0):(this.x=a,this.y=c,this.z=b)},get:function(){return new n(this.x,this.y,this.z)},mag:function(){var a=this.x,c=this.y,b=this.z;return Math.sqrt(a*a+c*c+b*b)},magSq:function(){var a=this.x,c=this.y,b=this.z;return a*a+c*c+b*b},setMag:function(a,c){if(c===g)c=a,this.normalize(),this.mult(c); else return a.normalize(),a.mult(c),a},add:function(a,c,b){1===arguments.length?(this.x+=a.x,this.y+=a.y,this.z+=a.z):(this.x+=a,this.y+=c,this.z+=b)},sub:function(a,c,b){1===arguments.length?(this.x-=a.x,this.y-=a.y,this.z-=a.z):(this.x-=a,this.y-=c,this.z-=b)},mult:function(a){"number"===typeof a?(this.x*=a,this.y*=a,this.z*=a):(this.x*=a.x,this.y*=a.y,this.z*=a.z)},div:function(a){"number"===typeof a?(this.x/=a,this.y/=a,this.z/=a):(this.x/=a.x,this.y/=a.y,this.z/=a.z)},rotate:function(a){var c= this.x,b=Math.cos(a);a=Math.sin(a);this.x=b*this.x-a*this.y;this.y=a*c+b*this.y},dist:function(a){var c=this.x-a.x,b=this.y-a.y;a=this.z-a.z;return Math.sqrt(c*c+b*b+a*a)},dot:function(a,c,b){return 1===arguments.length?this.x*a.x+this.y*a.y+this.z*a.z:this.x*a+this.y*c+this.z*b},cross:function(a){var c=this.x,b=this.y,p=this.z;return new n(b*a.z-a.y*p,p*a.x-a.z*c,c*a.y-a.x*b)},lerp:function(a,c,b,p){var r,d;2===arguments.length?(p=c,r=a.x,d=a.y,b=a.z):(r=a,d=c);this.x+=(r-this.x)*p;this.y+=(d-this.y)* p;this.z+=(b-this.z)*p},normalize:function(){var a=this.mag();0a&&(this.normalize(),this.mult(a))},heading:function(){return-Math.atan2(-this.y,this.x)},heading2D:function(){return this.heading()},toString:function(){return"["+this.x+", "+this.y+", "+this.z+"]"},array:function(){return[this.x,this.y,this.z]}};for(var b in n.prototype)n.prototype.hasOwnProperty(b)&&!n.hasOwnProperty(b)&&(n[b]=l(b));return n}},{}],18:[function(D,y,Q){y.exports=function(){var k= function(g,k,l,a,b){this.fullName=g||"";this.name=k||"";this.namespace=l||"";this.value=a;this.type=b};k.prototype={getName:function(){return this.name},getFullName:function(){return this.fullName},getNamespace:function(){return this.namespace},getValue:function(){return this.value},getType:function(){return this.type},setValue:function(g){this.value=g}};return k}},{}],19:[function(D,y,Q){y.exports=function(k,g){var n=k.Browser,l=n.ajax,a=n.window.DOMParser,b=k.XMLAttribute,e=function(a,b,e,r){this.attributes= [];this.children=[];this.name=this.fullName=null;this.namespace="";this.parent=this.content=null;this.systemID=this.lineNr="";this.type="ELEMENT";a&&("string"===typeof a?b===g&&-1":">","'":"'",'"':"""},r;for(r in e)Object.hasOwnProperty(e, r)||(a=a.replace(RegExp(r,"g"),e[r]));b.cdata=a;return b},hasAttribute:function(){if(1===arguments.length)return null!==this.getAttribute(arguments[0]);if(2===arguments.length)return null!==this.getAttribute(arguments[0],arguments[1])},equals:function(a){if(!(a instanceof e))return!1;var b,p;if(this.fullName!==a.fullName||this.attributes.length!==a.getAttributeCount()||this.attributes.length!==a.attributes.length)return!1;var r,d;b=0;for(p=this.attributes.length;ba&&this.children.splice(a,1)},findAttribute:function(a,b){this.namespace=b||"";for(var e=0,r=this.attributes.length;ea?arguments[0]:arguments[0].substring(a+1);this.fullName=arguments[0];this.namespace=arguments[1]}},getName:function(){return this.fullName},getLocalName:function(){return this.name},getAttributeCount:function(){return this.attributes.length},toString:function(){if("TEXT"===this.type)return this.content; if("CDATA"===this.type)return this.cdata;var a=this.fullName,b="<"+a,e;for(e=0;e":b+(">"+this.content+"");else{b+=">";for(e=0;e"}return b}};e.parse=function(a){var b=new e;b.parse(a);return b};return e}},{}],20:[function(D,y,Q){y.exports={aliceblue:"#f0f8ff",antiquewhite:"#faebd7", aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f", darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0", hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32", linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6", palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4", tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"}},{}],21:[function(D,y,Q){y.exports=function(k,g,n){return function(l,a){l.__contains=function(b,e){return"string"!==typeof b?b.contains.apply(b,a(arguments)):null!==b&&null!==e&&"string"===typeof e&&-1g)return b;var k=0,r="";do r+=b.substring(k,g)+c,k=g+e.length;while(0<=(g=b.indexOf(e,k)));return r+b.substring(k)};l.__equals=function(b, e){return b.equals instanceof Function?b.equals.apply(b,a(arguments)):g(b,e)};l.__equalsIgnoreCase=function(b,e){return"string"!==typeof b?b.equalsIgnoreCase.apply(b,a(arguments)):b.toLowerCase()===e.toLowerCase()};l.__toCharArray=function(b){if("string"!==typeof b)return b.toCharArray.apply(b,a(arguments));for(var e=[],c=0,g=b.length;cc)return b.split(g); for(var k=[],r=b,d;-1!==(d=r.search(g))&&k.length=c?(g=a.charCodeAt(e+1),1024*(c-55296)+(g-56320)+65536):c};l.__matches=function(a,e){return RegExp(e).test(a)};l.__startsWith=function(b,e,c){if("string"!==typeof b)return b.startsWith.apply(b,a(arguments));c=c||0;return 0>c||c>b.length?!1:""===e||e===b? !0:b.indexOf(e)===c};l.__endsWith=function(b,e){if("string"!==typeof b)return b.endsWith.apply(b,a(arguments));var c=e?e.length:0;return""===e||e===b?!0:b.indexOf(e)===b.length-c};l.__hashCode=function(b){return b.hashCode instanceof Function?b.hashCode.apply(b,a(arguments)):k(b)};l.__printStackTrace=function(a){l.println("Exception: "+a.toString())}}}},{}],22:[function(D,y,Q){y.exports=function(k,g){function n(a,b){var d=a||362436069,c=b||521288629,e=function(){d=36969*(d&65535)+(d>>>16)&4294967295; c=18E3*(c&65535)+(c>>>16)&4294967295;return((d&65535)<<16|c&65535)&4294967295};this.doubleGenerator=function(){var a=e()/4294967296;return 0>a?1+a:a};this.intGenerator=e}function l(a){function b(a,d,c,e){a&=15;var g=8>a?d:c;d=4>a?c:12===a||14===a?d:e;return(0===(a&1)?g:-g)+(0===(a&2)?d:-d)}function d(a,b,d){b=0===(a&1)?b:d;return 0===(a&2)?-b:b}function c(a,b,d){return b+a*(d-b)}a=a!==g?new n(a):n.createRandomized();var e,k,m=new Uint8Array(512);for(e=0;256>e;++e)m[e]=e;for(e=0;256>e;++e){var l=m[k= a.intGenerator()&255];m[k]=m[e];m[e]=l}for(e=0;256>e;++e)m[e+256]=m[e];this.noise3d=function(a,d,e){var g=Math.floor(a)&255,k=Math.floor(d)&255,p=Math.floor(e)&255;a-=Math.floor(a);d-=Math.floor(d);e-=Math.floor(e);var n=(3-2*a)*a*a,l=(3-2*d)*d*d,G=m[g]+k,ca=m[G]+p,G=m[G+1]+p,k=m[g+1]+k,g=m[k]+p,p=m[k+1]+p;return c((3-2*e)*e*e,c(l,c(n,b(m[ca],a,d,e),b(m[g],a-1,d,e)),c(n,b(m[G],a,d-1,e),b(m[p],a-1,d-1,e))),c(l,c(n,b(m[ca+1],a,d,e-1),b(m[g+1],a-1,d,e-1)),c(n,b(m[G+1],a,d-1,e-1),b(m[p+1],a-1,d-1,e-1))))}; this.noise2d=function(a,b){var e=Math.floor(a)&255,g=Math.floor(b)&255;a-=Math.floor(a);b-=Math.floor(b);var r=(3-2*a)*a*a,k=m[e]+g,e=m[e+1]+g;return c((3-2*b)*b*b,c(r,d(m[k],a,b),d(m[e],a-1,b)),c(r,d(m[k+1],a,b-1),d(m[e+1],a-1,b-1)))};this.noise1d=function(a){var b=Math.floor(a)&255;a-=Math.floor(a);return c((3-2*a)*a*a,0===(m[b]&1)?-a:a,0===(m[b+1]&1)?-(a-1):a-1)}}var a=function(){return Math.random()};k.abs=Math.abs;k.ceil=Math.ceil;k.exp=Math.exp;k.floor=Math.floor;k.log=Math.log;k.pow=Math.pow; k.round=Math.round;k.sqrt=Math.sqrt;k.acos=Math.acos;k.asin=Math.asin;k.atan=Math.atan;k.atan2=Math.atan2;k.cos=Math.cos;k.sin=Math.sin;k.tan=Math.tan;k.constrain=function(a,b,d){return a>d?d:aa[c]&&(b=a[c]);return b};k.norm=function(a,b,d){return(a-b)/(d-b)};k.sq=function(a){return a*a};k.degrees=function(a){return 180*a/Math.PI};k.random=function(){if(0===arguments.length)return a();if(1===arguments.length)return a()*arguments[0];var b=arguments[0],c=arguments[1];return a()*(c-b)+b};n.createRandomized=function(){var a= new Date;return new n(a/6E4&4294967295,a&4294967295)};k.randomSeed=function(b){a=(new n(b)).doubleGenerator};k.Random=function(a){var b=!1,d,c;this.nextGaussian=function(){if(b)return b=!1,d;var a,e,g;do a=2*c()-1,e=2*c()-1,g=a*a+e*e;while(1<=g||0===g);g=Math.sqrt(-2*Math.log(g)/g);d=e*g;b=!0;return a*g};c=a===g?Math.random:(new n(a)).doubleGenerator};var b=g,e=4,c=0.5,m=g;k.noise=function(a,k,d){b===g&&(b=new l(m));for(var n=b,ca=1,G=1,A=0,y=0;yg?a:l;a=0===e;e=e===k||0>e?0:e;g=Math.abs(g);if(a)for(e=1,g*=10;1E-6e;)++e,g*=10;else 0!==e&&(g*=Math.pow(10,e));a=2*g;Math.floor(g)===g?a=g:Math.floor(a)===a?(g=Math.floor(g),a=g+g%2):a=Math.round(g);g="";for(b+=e;0\=]+)/g,function(a,b){var c=d(b);return c.untrim("__int_cast("+c.middle+")")});a=a.replace(/\bsuper(\s*"B\d+")/g,"$$superCstr$1").replace(/\bsuper(\s*\.)/g,"$$super$1");a=a.replace(/\b0+((\d*)(?:\.[\d*])?(?:[eE][\-\+]?\d+)?[fF]?)\b/,function(a,b,d){return b===d?a:""===d?"0"+b:b});a=a.replace(/\b(\.?\d+\.?)[fF]\b/g,"$1");a= a.replace(/([^\s])%([^=\s])/g,"$1 % $2");a=a.replace(/\b(frameRate|keyPressed|mousePressed)\b(?!\s*"B)/g,"__$1");a=a.replace(/\b(boolean|byte|char|float|int)\s*"B/g,function(a,b){return"parse"+b.substring(0,1).toUpperCase()+b.substring(1)+'"B'});a=a.replace(/\bpixels\b\s*(("C(\d+)")|\.length)?(\s*=(?!=)([^,\]\)\}]+))?/g,function(a,b,d,c,f,e){return d?(a=N[c],f?"pixels.setPixel"+l("("+a.substring(1,a.length-1)+","+e+")","B"):"pixels.getPixel"+l("("+a.substring(1,a.length-1)+")","B")):b?"pixels.getLength"+ l("()","B"):f?"pixels.set"+l("("+e+")","B"):"pixels.toArray"+l("()","B")});var f;do f=!1,a=a.replace(/((?:'\d+'|\b[A-Za-z_$][\w$]*\s*(?:"[BC]\d+")*)\s*\.\s*(?:[A-Za-z_$][\w$]*\s*(?:"[BC]\d+"\s*)*\.\s*)*)(replace|replaceAll|replaceFirst|contains|equals|equalsIgnoreCase|hashCode|toCharArray|printStackTrace|split|startsWith|endsWith|codePointAt|matches)\s*"B(\d+)"/g,b);while(f);do f=!1,a=a.replace(/((?:'\d+'|\b[A-Za-z_$][\w$]*\s*(?:"[BC]\d+")*)\s*(?:\.\s*[A-Za-z_$][\w$]*\s*(?:"[BC]\d+"\s*)*)*)instanceof\s+([A-Za-z_$][\w$]*\s*(?:\.\s*[A-Za-z_$][\w$]*)*)/g, c);while(f);return a=a.replace(/\bthis(\s*"B\d+")/g,"$$constr$1")}function u(a,b){this.baseInterfaceName=a;this.body=b;b.owner=this}function nd(a){var b=RegExp(/\bnew\s*([A-Za-z_$][\w$]*\s*(?:\.\s*[A-Za-z_$][\w$]*)*)\s*"B\d+"\s*"A(\d+)"/).exec(a);a=ja;var d="class"+ ++ab;ja=d;var c=b[1]+"$"+d,b=new u(c,ea(N[b[2]],c,"","implements "+b[1]));b.classId=d;b.scopeId=a;Y[d]=b;ja=a;return b}function Ia(a,b,d){this.name=a;this.params=b;this.body=d}function U(a){a=RegExp(/\b([A-Za-z_$][\w$]*)\s*"B(\d+)"\s*"A(\d+)"/).exec(a); return new Ia("function"!==a[1]?a[1]:null,K(N[a[2]]),ra(N[a[3]]))}function Z(a){this.members=a}function V(a){a=a.split(",");for(var b=0;bd?{value:ma(a[b])}:{label:c(a[b].substring(0,d)),value:ma(c(a[b].substring(d+1)))}}return new Z(a)}function $(a){if("("===a.charAt(0)||"["===a.charAt(0))return a.charAt(0)+$(a.substring(1,a.length-1))+a.charAt(a.length-1);if("{"===a.charAt(0))return/^\{\s*(?:[A-Za-z_$][\w$]*|'\d+')\s*:/.test(a)?"{"+l(a.substring(1,a.length- 1),"I")+"}":"["+$(a.substring(1,a.length-1))+"]";a=d(a);var b=Q(a.middle),b=b.replace(/"[ABC](\d+)"/g,function(a,b){return $(N[b])});return a.untrim(b)}function sa(a){return a.replace(/(\.\s*)?((?:\b[A-Za-z_]|\$)[\w$]*)(\s*\.\s*([A-Za-z_$][\w$]*)(\s*\()?)?/g,function(a,b,d,c,f,e){return b?a:C({name:d,member:f,callSign:!!e})+(c===p?"":c)})}function ta(a,b){this.expr=a;this.transforms=b}function $b(a,b,d){this.name=a;this.value=b;this.isDefault=d}function bb(a,b){var d=a.indexOf("="),f,e;0>d?(f=a,d= b,e=!0):(f=a.substring(0,d),d=ma(a.substring(d+1)),e=!1);return new $b(c(f.replace(/(\s*"C\d+")+/g,"")),d,e)}function Sa(a){return"int"===a||"float"===a?"0":"boolean"===a?"false":"color"===a?"0x00000000":"null"}function cb(a,b){this.definitions=a;this.varType=b}function Eb(a){this.expression=a}function db(a){if(Fb.test(a)){var b=tb.exec(a);a=a.substring(b[0].length).split(",");for(var d=Sa(b[2]),c=0;ca.indexOf(";"))return a=a.substring(1,a.length-1).split(":"),new wa(db(c(a[0])),ma(a[1]));a=a.substring(1,a.length-1).split(";");return new Gb(db(c(a[0])),ma(a[1]),ma(a[2]))}function Ta(a){a.sort(function(a,b){return b.weight- a.weight})}function Ja(a,b,d){this.name=a;this.body=b;this.isStatic=d;b.owner=this}function Ib(a,b,d){this.name=a;this.body=b;this.isStatic=d;b.owner=this}function Jb(a){var b=qa.exec(a);qa.lastIndex=0;var d=0<=b[1].indexOf("static"),c=N[m(b[6])];a=ja;var f="class"+ ++ab;ja=f;b="interface"===b[2]?new Ja(b[3],eb(c,b[3],b[4]),d):new Ib(b[3],ea(c,b[3],b[4],b[5]),d);b.classId=f;b.scopeId=a;Y[f]=b;ja=a;return b}function Kb(a,b,d,c){this.name=a;this.params=b;this.body=d;this.isStatic=c}function fb(a){a= la.exec(a);la.lastIndex=0;var b=0<=a[1].indexOf("static"),d=";"!==a[6]?N[m(a[6])]:"{}";return new Kb(a[3],K(N[m(a[4])]),ra(d),b)}function Lb(a,b,d){this.definitions=a;this.fieldType=b;this.isStatic=d}function Ua(a){var b=tb.exec(a),d=0<=b[1].indexOf("static");a=a.substring(b[0].length).split(/,\s*/g);for(var c=Sa(b[2]),f=0;f([=]?)/g,La);while(ka);var N=function(a){var b=[];a=a.split(/([\{\[\(\)\]\}])/);for(var d=a[0],c=[],f=1;f=":"===")+" "+r+") { $constr_"+r+".apply("+a+", arguments); }");0e)return!1;f.splice(e,1);if(0");b.javaconsole.innerHTML=b.BufferArray.join("");"hidden"===b.wrapper.style.visibility&&(b.wrapper.style.visibility="visible");b.BufferArray.length>b.BufferMax?b.BufferArray.splice(0, 1):b.javaconsole.scrollTop=b.javaconsole.scrollHeight;"hidden"===b.wrapper.style.visibility&&(b.wrapper.style.visibility="visible")};b.showconsole=function(){b.wrapper.style.visibility="visible"};b.hideconsole=function(){b.wrapper.style.visibility="hidden"};b.closer.onclick=function(){b.hideconsole()};b.hideconsole();return b}(m);return k}},{}],26:[function(D,y,Q){y.exports=function(k,g){function n(a,b){return a in m?m[a]:"function"===typeof m[b]?m[b]:function(a){if(a instanceof Array)return a;if("number"=== typeof a){var b=[];b.length=a;return b}}}var l=k.defaultScope,a=k.extend,b=k.Browser,e=b.ajax,c=b.navigator,m=b.window,p=b.document,r=k.noop,d=l.PConstants;PFont=l.PFont;PShapeSVG=l.PShapeSVG;PVector=l.PVector;Char=Character=l.Char;ObjectIterator=l.ObjectIterator;XMLElement=l.XMLElement;XML=l.XML;var y=m.HTMLCanvasElement,D=m.HTMLImageElement,G=m.localStorage;p.head||(p.head=p.getElementsByTagName("head")[0]);var A=n("Float32Array","WebGLFloatArray"),Q=n("Int32Array","WebGLIntArray"),v=n("Uint16Array", "WebGLUnsignedShortArray"),fa=n("Uint8Array","WebGLUnsignedByteArray");if(9<=p.documentMode&&!p.doctype)throw"The doctype directive is missing. The recommended doctype in Internet Explorer is the HTML5 doctype: ";var q=[],Yb={},K=this.Processing=function(b,k,n){function Ia(a,b,x){a.addEventListener?a.addEventListener(b,x,!1):a.attachEvent("on"+b,x);vb.push({elem:a,type:b,fn:x})}function U(a,b,x,S){var d=Fa.locations[a];d===g&&(d=h.getUniformLocation(b,x),Fa.locations[a]=d);null!==d&& (4===S.length?h.uniform4fv(d,S):3===S.length?h.uniform3fv(d,S):2===S.length?h.uniform2fv(d,S):h.uniform1f(d,S))}function Z(a,b,x,S){var d=Fa.locations[a];d===g&&(d=h.getUniformLocation(b,x),Fa.locations[a]=d);null!==d&&(4===S.length?h.uniform4iv(d,S):3===S.length?h.uniform3iv(d,S):2===S.length?h.uniform2iv(d,S):h.uniform1i(d,S))}function V(a,b,x,S,d){var c=Fa.locations[a];c===g&&(c=h.getUniformLocation(b,x),Fa.locations[a]=c);-1!==c&&(16===d.length?h.uniformMatrix4fv(c,S,d):9===d.length?h.uniformMatrix3fv(c, S,d):h.uniformMatrix2fv(c,S,d))}function $(a,b,x,S,d){var c=Fa.attributes[a];c===g&&(c=h.getAttribLocation(b,x),Fa.attributes[a]=c);-1!==c&&(h.bindBuffer(h.ARRAY_BUFFER,d),h.vertexAttribPointer(c,S,h.FLOAT,!1,0,0),h.enableVertexAttribArray(c))}function sa(a,b,x){var d=Fa.attributes[a];d===g&&(d=h.getAttribLocation(b,x),Fa.attributes[a]=d);-1!==d&&h.disableVertexAttribArray(d)}function ta(a,b,x,S){Va===d.HSB?(x=f.color.toRGB(a,b,x),a=x[0],b=x[1],x=x[2]):(a=Math.round(255*(a/xa)),b=Math.round(255*(b/ Ea)),x=Math.round(255*(x/ya)));S=Math.round(255*(S/ia));a=0>a?0:a;b=0>b?0:b;x=0>x?0:x;S=0>S?0:S;return(255>>16)/255;x=((a&d.GREEN_MASK)>>>8)/255;S=(a&d.BLUE_MASK)/255;a=f.max(f.max(b,x),S);var c=f.min(f.min(b, x),S);if(c===a)return[0,0,a*ya];b=(b===a?(x-S)/(a-c):x===a?2+(S-b)/(a-c):4+(b-x)/(a-c))/6;0>b?b+=1:1>>16;f[c+1]=(b&d.GREEN_MASK)>>>8;f[c+2]=b&d.BLUE_MASK; f[c+3]=(b&d.ALPHA_MASK)>>>24;a.__isDirty=!0}}(a),toArray:function(a){return function(){var L=[],b=a.imageData.data,c=a.width*a.height;if(a.isRemote)throw"Image is loaded remotely. Cannot get pixels.";for(var f=0,e=0;f>>16,c[b+1]=(f&d.GREEN_MASK)>>>8,c[b+2]=f&d.BLUE_MASK,c[b+3]=(f&d.ALPHA_MASK)>>>24;a.__isDirty=!0}}(a)}}function Jb(a,b,x,c){var e=new Ga(x,c,d.ARGB);e.fromImageData(f.toImageData(a,b,x,c));return e}function Kb(a,b,x,c,f){if(f.isRemote)throw"Image is loaded remotely. Cannot get x,y,w,h.";var e=new Ga(x,c,d.ARGB),g=e.imageData.data,h=f.width,s=f.height;f=f.imageData.data;var k=Math.max(0,-b),m=Math.max(0,-a);c=Math.min(c,s-b);for(s=Math.min(x,h-a);ka.indexOf("\n")?(a=[a],f=1):(a=a.split(/\r?\n/g),f=a.length);var e=0;Wa===d.TOP?e=Xa+Ma:Wa===d.CENTER?e=Xa/2-(f-1)*Aa/2:Wa===d.BOTTOM&&(e=-(Ma+(f-1)*Aa));for(var g=0;gf)){for(var g=-1,h=0,s=0,k=[],m=0,n=a.length;mf-Ma)break;s=k[h];ha.text$line(s.text,b+a,x+g+m,e,nb)}}}function Ka(a){ha="3D"===a?new B:"2D"===a?new E:new F;for(var b in F.prototype)F.prototype.hasOwnProperty(b)&& 0>b.indexOf("$")&&(f[b]=ha[b]);ha.$init()}function H(a){return function(){Ka("2D");return ha[a].apply(this,arguments)}}function lb(a){a=a.which||a.keyCode;switch(a){case 13:return 10;case 91:case 93:case 224:return 157;case 57392:return 17;case 46:return 127;case 45:return 155}return a}function mb(a){"function"===typeof a.preventDefault?a.preventDefault():"function"===typeof a.stopPropagation&&a.stopPropagation();return!1}function Nb(){for(var a in hb)if(hb.hasOwnProperty(a)){f.__keyPressed=!0;return}f.__keyPressed= !1}function ub(a,b){hb[a]=b;ob=null;f.key=b;f.keyCode=a;f.keyPressed();f.keyCode=0;f.keyTyped();Nb()}function rc(a){var b=lb(a);if(b===d.DELETE)ub(b,new Char(127));else if(0>qd.indexOf(b))ob=b;else{var x=new Char(d.CODED);f.key=x;f.keyCode=b;hb[b]=x;f.keyPressed();ob=null;Nb();return mb(a)}}function Ob(a){if(null!==ob){var b=ob,x;x=a.which||a.keyCode;var d=a.shiftKey||a.ctrlKey||a.altKey||a.metaKey;switch(x){case 13:x=d?13:10;break;case 8:x=d?127:8}x=new Char(x);ub(b,x);return mb(a)}}function bc(a){a= lb(a);var b=hb[a];b!==g&&(f.key=b,f.keyCode=a,f.keyReleased(),delete hb[a],Nb())}if(!(this instanceof K))throw"called Processing constructor as if it were a function: missing 'new'.";var T={},Pb=b===g&&k===g,T=Pb?p.createElement("canvas"):"string"===typeof b?p.getElementById(b):b;if(!("getContext"in T))throw"called Processing constructor without passing canvas element reference or id.";var vb=[],f=this;f.Char=f.Character=Char;a.withCommonFunctions(f);a.withMath(f);a.withProxyFunctions(f,function(a){return Array.prototype.slice.call(a, 1)});a.withTouch(f,T,Ia,p,d);n&&Object.keys(n).forEach(function(a){f[a]=n[a]});f.externals={canvas:T,context:g,sketch:g,window:m};f.name="Processing.js Instance";f.use3DContext=!1;f.focused=!1;f.breakShape=!1;f.glyphTable={};f.pmouseX=0;f.pmouseY=0;f.mouseX=0;f.mouseY=0;f.mouseButton=0;f.mouseScroll=0;f.mouseClicked=g;f.mouseDragged=g;f.mouseMoved=g;f.mousePressed=g;f.mouseReleased=g;f.mouseScrolled=g;f.mouseOver=g;f.mouseOut=g;f.touchStart=g;f.touchEnd=g;f.touchMove=g;f.touchCancel=g;f.key=g;f.keyCode= g;f.keyPressed=r;f.keyReleased=r;f.keyTyped=r;f.draw=g;f.setup=g;f.__mousePressed=!1;f.__keyPressed=!1;f.__frameRate=60;f.frameCount=0;f.width=100;f.height=100;var h,da,ha,R=!0,ka=[1,1,1,1],La=4294967295,N=!0,C=!0,Y=[0,0,0,1],ja=4278190080,ab=!0,ea=1,eb=!1,ra=!1,Da=!0,ma=0,qa=d.CORNER,la=d.CENTER,Fb=0,Db=0,tb=0,jb=d.NORMAL_MODE_AUTO,Zb=60,Kc=1E3/Zb,od=T.style.cursor,aa=d.POLYGON,oc=0,pc=20,Lc=!1,kb=-3355444,qc=20,ia=255,xa=255,Ea=255,ya=255,cc=0,dc=0,Va=d.RGB,gb=null,sc=null,Oc=Date.now(),tc=Oc,ec= 0,Ba,Rb,fc,wb,xb,uc,vc,Fa={attributes:{},locations:{}},z,J,na,wc,xc,yc,gc,zc,Sb,Ac,Pc,Bc,Qc,hc,Rc,Sc,Tc,Uc=0,Vc=0,Wc=d.IMAGE,ua=!1,Cc,Dc,Ec,nb=d.LEFT,Wa=d.BASELINE,ic=d.MODEL,yb="Arial",Na=12,Xa=9,Ma=2,Aa=14,ba=PFont.get(yb,Na),Nc,Fc=null,Qb=!1,Xc,Yc=1E3,hb=[],ob=null,qd=[d.SHIFT,d.CONTROL,d.ALT,d.CAPSLK,d.PGUP,d.PGDN,d.END,d.HOME,d.LEFT,d.UP,d.RIGHT,d.DOWN,d.NUMLK,d.INSERT,d.F1,d.F2,d.F3,d.F4,d.F5,d.F6,d.F7,d.F8,d.F9,d.F10,d.F11,d.F12,d.META],O=0,jc=0,pb=0,Oa=[],Pa=[],Qa=[],Tb=new A(d.SINCOS_LENGTH), Ub=new A(d.SINCOS_LENGTH),P,qb,Ra,M,ga,zb,Ab,Vb,Ha,kc=!1,lc=60*(Math.PI/180),Gc=f.width/2,rb=f.height/2,sb=rb/Math.tan(lc/2),Zc=sb/10,$c=10*sb,ad=f.width/f.height,t=[],va=[],oa=0,Bb=!1,Cb=!1,ib=!0,Wb=d.CORNER,bd=[],cd=new A([0.5,0.5,-0.5,0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,0.5,-0.5,0.5,0.5,-0.5,0.5,0.5,0.5,-0.5,0.5,0.5,-0.5,-0.5,0.5,-0.5,-0.5,0.5,0.5,-0.5,0.5,0.5,0.5,0.5,0.5,0.5,-0.5,0.5,0.5,0.5,0.5,-0.5,0.5,0.5,-0.5,0.5,0.5,-0.5,-0.5,0.5,0.5,-0.5,0.5,-0.5,-0.5,0.5,-0.5,0.5,-0.5,-0.5, 0.5,-0.5,-0.5,0.5,-0.5,-0.5,-0.5,0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,0.5,-0.5,0.5,0.5,-0.5,0.5,0.5,-0.5,0.5,-0.5,-0.5,-0.5,-0.5,0.5,0.5,0.5,0.5,0.5,-0.5,-0.5,0.5,-0.5,-0.5,0.5,-0.5,-0.5,0.5,0.5,0.5,0.5,0.5]),dd=new A([0.5,0.5,0.5,0.5,-0.5,0.5,0.5,0.5,-0.5,0.5,-0.5,-0.5,-0.5,0.5,-0.5,-0.5,-0.5,-0.5,-0.5,0.5,0.5,-0.5,-0.5,0.5,0.5,0.5,0.5,0.5,0.5,-0.5,0.5,0.5,-0.5,-0.5,0.5,-0.5,-0.5,0.5,-0.5,-0.5,0.5,0.5,-0.5,0.5,0.5,0.5,0.5,0.5,0.5,-0.5,0.5,0.5,-0.5,-0.5,0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5, -0.5,-0.5,0.5,-0.5,-0.5,0.5,0.5,-0.5,0.5]),rd=new A([0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0]),Hc=new A([0,0,0,0,1,0,1,1,0,1,0,0]),sd=new A([0,0,1,0,0,1,0,0,1,0,0,1]),td="varying vec4 vFrontColor;attribute vec3 aVertex;attribute vec3 aNormal;attribute vec4 aColor;attribute vec2 aTexture;varying vec2 vTexture;uniform vec4 uColor;uniform bool uUsingMat;uniform vec3 uSpecular;uniform vec3 uMaterialEmissive;uniform vec3 uMaterialAmbient;uniform vec3 uMaterialSpecular;uniform float uShininess;uniform mat4 uModel;uniform mat4 uView;uniform mat4 uProjection;uniform mat4 uNormalTransform;uniform int uLightCount;uniform vec3 uFalloff;struct Light { int type; vec3 color; vec3 position; vec3 direction; float angle; vec3 halfVector; float concentration;};uniform Light uLights0;uniform Light uLights1;uniform Light uLights2;uniform Light uLights3;uniform Light uLights4;uniform Light uLights5;uniform Light uLights6;uniform Light uLights7;Light getLight(int index){ if(index == 0) return uLights0; if(index == 1) return uLights1; if(index == 2) return uLights2; if(index == 3) return uLights3; if(index == 4) return uLights4; if(index == 5) return uLights5; if(index == 6) return uLights6; return uLights7;}void AmbientLight( inout vec3 totalAmbient, in vec3 ecPos, in Light light ) { float d = length( light.position - ecPos ); float attenuation = 1.0 / ( uFalloff[0] + ( uFalloff[1] * d ) + ( uFalloff[2] * d * d )); totalAmbient += light.color * attenuation;}void DirectionalLight( inout vec3 col, inout vec3 spec, in vec3 vertNormal, in vec3 ecPos, in Light light ) { float powerFactor = 0.0; float nDotVP = max(0.0, dot( vertNormal, normalize(-light.position) )); float nDotVH = max(0.0, dot( vertNormal, normalize(-light.position-normalize(ecPos) ))); if( nDotVP != 0.0 ){ powerFactor = pow( nDotVH, uShininess ); } col += light.color * nDotVP; spec += uSpecular * powerFactor;}void PointLight( inout vec3 col, inout vec3 spec, in vec3 vertNormal, in vec3 ecPos, in Light light ) { float powerFactor; vec3 VP = light.position - ecPos; float d = length( VP ); VP = normalize( VP ); float attenuation = 1.0 / ( uFalloff[0] + ( uFalloff[1] * d ) + ( uFalloff[2] * d * d )); float nDotVP = max( 0.0, dot( vertNormal, VP )); vec3 halfVector = normalize( VP - normalize(ecPos) ); float nDotHV = max( 0.0, dot( vertNormal, halfVector )); if( nDotVP == 0.0 ) { powerFactor = 0.0; } else { powerFactor = pow( nDotHV, uShininess ); } spec += uSpecular * powerFactor * attenuation; col += light.color * nDotVP * attenuation;}void SpotLight( inout vec3 col, inout vec3 spec, in vec3 vertNormal, in vec3 ecPos, in Light light ) { float spotAttenuation; float powerFactor = 0.0; vec3 VP = light.position - ecPos; vec3 ldir = normalize( -light.direction ); float d = length( VP ); VP = normalize( VP ); float attenuation = 1.0 / ( uFalloff[0] + ( uFalloff[1] * d ) + ( uFalloff[2] * d * d ) ); float spotDot = dot( VP, ldir );"+ (/Windows/.test(c.userAgent)?" spotAttenuation = 1.0; ":" if( spotDot > cos( light.angle ) ) { spotAttenuation = pow( spotDot, light.concentration ); } else{ spotAttenuation = 0.0; } attenuation *= spotAttenuation;")+" float nDotVP = max( 0.0, dot( vertNormal, VP ) ); vec3 halfVector = normalize( VP - normalize(ecPos) ); float nDotHV = max( 0.0, dot( vertNormal, halfVector ) ); if( nDotVP != 0.0 ) { powerFactor = pow( nDotHV, uShininess ); } spec += uSpecular * powerFactor * attenuation; col += light.color * nDotVP * attenuation;}void main(void) { vec3 finalAmbient = vec3( 0.0 ); vec3 finalDiffuse = vec3( 0.0 ); vec3 finalSpecular = vec3( 0.0 ); vec4 col = uColor; if ( uColor[0] == -1.0 ){ col = aColor; } vec3 norm = normalize(vec3( uNormalTransform * vec4( aNormal, 0.0 ) )); vec4 ecPos4 = uView * uModel * vec4(aVertex, 1.0); vec3 ecPos = (vec3(ecPos4))/ecPos4.w; if( uLightCount == 0 ) { vFrontColor = col + vec4(uMaterialSpecular, 1.0); } else { for( int i = 0; i < 8; i++ ) { Light l = getLight(i); if( i >= uLightCount ){ break; } if( l.type == 0 ) { AmbientLight( finalAmbient, ecPos, l ); } else if( l.type == 1 ) { DirectionalLight( finalDiffuse, finalSpecular, norm, ecPos, l ); } else if( l.type == 2 ) { PointLight( finalDiffuse, finalSpecular, norm, ecPos, l ); } else { SpotLight( finalDiffuse, finalSpecular, norm, ecPos, l ); } } if( uUsingMat == false ) { vFrontColor = vec4( vec3( col ) * finalAmbient + vec3( col ) * finalDiffuse + vec3( col ) * finalSpecular, col[3] ); } else{ vFrontColor = vec4( uMaterialEmissive + (vec3(col) * uMaterialAmbient * finalAmbient ) + (vec3(col) * finalDiffuse) + (uMaterialSpecular * finalSpecular), col[3] ); } } vTexture.xy = aTexture.xy; gl_Position = uProjection * uView * uModel * vec4( aVertex, 1.0 );}", Ic=function(a,b,x){var d=a.createShader(a.VERTEX_SHADER);a.shaderSource(d,b);a.compileShader(d);if(!a.getShaderParameter(d,a.COMPILE_STATUS))throw a.getShaderInfoLog(d);b=a.createShader(a.FRAGMENT_SHADER);a.shaderSource(b,x);a.compileShader(b);if(!a.getShaderParameter(b,a.COMPILE_STATUS))throw a.getShaderInfoLog(b);x=a.createProgram();a.attachShader(x,d);a.attachShader(x,b);a.linkProgram(x);if(!a.getProgramParameter(x,a.LINK_STATUS))throw"Error linking shaders.";return x},ed=function(a,b,x,d,c){return{x:a, y:b,w:x,h:d}},mc=ed,ud=function(a,b,x,d,c){return{x:a,y:b,w:c?x:x-a,h:c?d:d-b}},vd=function(a,b,x,d,c){return{x:a-x/2,y:b-d/2,w:x,h:d}},X=function(){},E=function(){},B=function(){},F=function(){};E.prototype=new X;E.prototype.constructor=E;B.prototype=new X;B.prototype.constructor=B;F.prototype=new X;F.prototype.constructor=F;X.prototype.a3DOnlyFunction=r;f.shape=function(a,b,x,c,e){1<=arguments.length&&null!==arguments[0]&&a.isVisible()&&(f.pushMatrix(),Wb===d.CENTER?5===arguments.length?(f.translate(b- c/2,x-e/2),f.scale(c/a.getWidth(),e/a.getHeight())):3===arguments.length?f.translate(b-a.getWidth()/2,-a.getHeight()/2):f.translate(-a.getWidth()/2,-a.getHeight()/2):Wb===d.CORNER?5===arguments.length?(f.translate(b,x),f.scale(c/a.getWidth(),e/a.getHeight())):3===arguments.length&&f.translate(b,x):Wb===d.CORNERS&&(5===arguments.length?(c-=b,e-=x,f.translate(b,x),f.scale(c/a.getWidth(),e/a.getHeight())):3===arguments.length&&f.translate(b,x)),a.draw(f),(1===arguments.length&&Wb===d.CENTER||1d.MIN_INT){var b=this.elements[0],x=this.elements[1],c=this.elements[2],f=this.elements[3],e=this.elements[4],g=this.elements[5];this.elements[0]=e/a;this.elements[3]=-f/a;this.elements[1]=-x/a;this.elements[4]=b/a;this.elements[2]=(x*g-e*c)/a;this.elements[5]=(f*c-b*g)/a;return!0}return!1},scale:function(a,b){a&&!b&&(b=a);a&& b&&(this.elements[0]*=a,this.elements[1]*=b,this.elements[3]*=a,this.elements[4]*=b)},invScale:function(a,b){a&&!b&&(b=a);this.scale(1/a,1/b)},apply:function(){var a;1===arguments.length&&arguments[0]instanceof Ya?a=arguments[0].array():6===arguments.length?a=Array.prototype.slice.call(arguments):1===arguments.length&&arguments[0]instanceof Array&&(a=arguments[0]);for(var b=[0,0,this.elements[2],0,0,this.elements[5]],x=0,d=0;2>d;d++)for(var c=0;3>c;c++,x++)b[x]+=this.elements[3*d+0]*a[c+0]+this.elements[3* d+1]*a[c+3];this.elements=b.slice()},preApply:function(){var a;1===arguments.length&&arguments[0]instanceof Ya?a=arguments[0].array():6===arguments.length?a=Array.prototype.slice.call(arguments):1===arguments.length&&arguments[0]instanceof Array&&(a=arguments[0]);var b=[0,0,a[2],0,0,a[5]];b[2]=a[2]+this.elements[2]*a[0]+this.elements[5]*a[1];b[5]=a[5]+this.elements[2]*a[3]+this.elements[5]*a[4];b[0]=this.elements[0]*a[0]+this.elements[3]*a[1];b[3]=this.elements[0]*a[3]+this.elements[3]*a[4];b[1]= this.elements[1]*a[0]+this.elements[4]*a[1];b[4]=this.elements[1]*a[3]+this.elements[4]*a[4];this.elements=b.slice()},rotate:function(a){var b=Math.cos(a);a=Math.sin(a);var x=this.elements[0],d=this.elements[1];this.elements[0]=b*x+a*d;this.elements[1]=-a*x+b*d;x=this.elements[3];d=this.elements[4];this.elements[3]=b*x+a*d;this.elements[4]=-a*x+b*d},rotateZ:function(a){this.rotate(a)},invRotateZ:function(a){this.rotateZ(a-Math.PI)},print:function(){var a=fd(this.elements),a=""+f.nfs(this.elements[0], a,4)+" "+f.nfs(this.elements[1],a,4)+" "+f.nfs(this.elements[2],a,4)+"\n"+f.nfs(this.elements[3],a,4)+" "+f.nfs(this.elements[4],a,4)+" "+f.nfs(this.elements[5],a,4)+"\n\n";f.println(a)}};var I=f.PMatrix3D=function(){this.reset()};I.prototype={set:function(){16===arguments.length?this.elements=Array.prototype.slice.call(arguments):1===arguments.length&&arguments[0]instanceof I?this.elements=arguments[0].array():1===arguments.length&&arguments[0]instanceof Array&&(this.elements=arguments[0].slice())}, get:function(){var a=new I;a.set(this.elements);return a},reset:function(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]},array:function(){return this.elements.slice()},translate:function(a,b,x){x===g&&(x=0);this.elements[3]+=a*this.elements[0]+b*this.elements[1]+x*this.elements[2];this.elements[7]+=a*this.elements[4]+b*this.elements[5]+x*this.elements[6];this.elements[11]+=a*this.elements[8]+b*this.elements[9]+x*this.elements[10];this.elements[15]+=a*this.elements[12]+b*this.elements[13]+x*this.elements[14]}, transpose:function(){var a=this.elements[4];this.elements[4]=this.elements[1];this.elements[1]=a;a=this.elements[8];this.elements[8]=this.elements[2];this.elements[2]=a;a=this.elements[6];this.elements[6]=this.elements[9];this.elements[9]=a;a=this.elements[3];this.elements[3]=this.elements[12];this.elements[12]=a;a=this.elements[7];this.elements[7]=this.elements[13];this.elements[13]=a;a=this.elements[11];this.elements[11]=this.elements[14];this.elements[14]=a},mult:function(a,b){var x,d,c,f;a instanceof PVector?(x=a.x,d=a.y,c=a.z,f=1,b||(b=new PVector)):a instanceof Array&&(x=a[0],d=a[1],c=a[2],f=a[3]||1,!b||3!==b.length&&4!==b.length)&&(b=[0,0,0]);b instanceof Array&&(3===b.length?(b[0]=this.elements[0]*x+this.elements[1]*d+this.elements[2]*c+this.elements[3],b[1]=this.elements[4]*x+this.elements[5]*d+this.elements[6]*c+this.elements[7],b[2]=this.elements[8]*x+this.elements[9]*d+this.elements[10]*c+this.elements[11]):4===b.length&&(b[0]=this.elements[0]*x+this.elements[1]*d+this.elements[2]*c+this.elements[3]* f,b[1]=this.elements[4]*x+this.elements[5]*d+this.elements[6]*c+this.elements[7]*f,b[2]=this.elements[8]*x+this.elements[9]*d+this.elements[10]*c+this.elements[11]*f,b[3]=this.elements[12]*x+this.elements[13]*d+this.elements[14]*c+this.elements[15]*f));b instanceof PVector&&(b.x=this.elements[0]*x+this.elements[1]*d+this.elements[2]*c+this.elements[3],b.y=this.elements[4]*x+this.elements[5]*d+this.elements[6]*c+this.elements[7],b.z=this.elements[8]*x+this.elements[9]*d+this.elements[10]*c+this.elements[11]); return b},preApply:function(){var a;1===arguments.length&&arguments[0]instanceof I?a=arguments[0].array():16===arguments.length?a=Array.prototype.slice.call(arguments):1===arguments.length&&arguments[0]instanceof Array&&(a=arguments[0]);for(var b=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],x=0,d=0;4>d;d++)for(var c=0;4>c;c++,x++)b[x]+=this.elements[c+0]*a[4*d+0]+this.elements[c+4]*a[4*d+1]+this.elements[c+8]*a[4*d+2]+this.elements[c+12]*a[4*d+3];this.elements=b.slice()},apply:function(){var a;1===arguments.length&& arguments[0]instanceof I?a=arguments[0].array():16===arguments.length?a=Array.prototype.slice.call(arguments):1===arguments.length&&arguments[0]instanceof Array&&(a=arguments[0]);for(var b=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],x=0,d=0;4>d;d++)for(var c=0;4>c;c++,x++)b[x]+=this.elements[4*d+0]*a[c+0]+this.elements[4*d+1]*a[c+4]+this.elements[4*d+2]*a[c+8]+this.elements[4*d+3]*a[c+12];this.elements=b.slice()},rotate:function(a,b,x,d){if(x){var c=f.cos(a);a=f.sin(a);var e=1-c;this.apply(e*b*b+c,e*b*x-a* d,e*b*d+a*x,0,e*b*x+a*d,e*x*x+c,e*x*d-a*b,0,e*b*d-a*x,e*x*d+a*b,e*d*d+c,0,0,0,0,1)}else this.rotateZ(a)},invApply:function(){Vb===g&&(Vb=new I);var a=arguments;Vb.set(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15]);if(!Vb.invert())return!1;this.preApply(Vb);return!0},rotateX:function(a){var b=f.cos(a);a=f.sin(a);this.apply([1,0,0,0,0,b,-a,0,0,a,b,0,0,0,0,1])},rotateY:function(a){var b=f.cos(a);a=f.sin(a);this.apply([b,0,a,0,0,1,0,0,-a,0,b,0,0,0,0,1])},rotateZ:function(a){var b= Math.cos(a);a=Math.sin(a);this.apply([b,-a,0,0,a,b,0,0,0,0,1,0,0,0,0,1])},scale:function(a,b,d){!a||b||d?a&&(b&&!d)&&(d=1):b=d=a;a&&(b&&d)&&(this.elements[0]*=a,this.elements[1]*=b,this.elements[2]*=d,this.elements[4]*=a,this.elements[5]*=b,this.elements[6]*=d,this.elements[8]*=a,this.elements[9]*=b,this.elements[10]*=d,this.elements[12]*=a,this.elements[13]*=b,this.elements[14]*=d)},skewX:function(a){a=Math.tan(a);this.apply(1,a,0,0,0,1,0,0,0,0,1,0,0,0,0,1)},skewY:function(a){a=Math.tan(a);this.apply(1, 0,0,0,a,1,0,0,0,0,1,0,0,0,0,1)},shearX:function(a){a=Math.tan(a);this.apply(1,a,0,0,0,1,0,0,0,0,1,0,0,0,0,1)},shearY:function(a){a=Math.tan(a);this.apply(1,0,0,0,a,1,0,0,0,0,1,0,0,0,0,1)},multX:function(a,b,d,c){return d?c?this.elements[0]*a+this.elements[1]*b+this.elements[2]*d+this.elements[3]*c:this.elements[0]*a+this.elements[1]*b+this.elements[2]*d+this.elements[3]:this.elements[0]*a+this.elements[1]*b+this.elements[3]},multY:function(a,b,d,c){return d?c?this.elements[4]*a+this.elements[5]*b+ this.elements[6]*d+this.elements[7]*c:this.elements[4]*a+this.elements[5]*b+this.elements[6]*d+this.elements[7]:this.elements[4]*a+this.elements[5]*b+this.elements[7]},multZ:function(a,b,d,c){return c?this.elements[8]*a+this.elements[9]*b+this.elements[10]*d+this.elements[11]*c:this.elements[8]*a+this.elements[9]*b+this.elements[10]*d+this.elements[11]},multW:function(a,b,d,c){return c?this.elements[12]*a+this.elements[13]*b+this.elements[14]*d+this.elements[15]*c:this.elements[12]*a+this.elements[13]* b+this.elements[14]*d+this.elements[15]},invert:function(){var a=this.elements[0]*this.elements[5]-this.elements[1]*this.elements[4],b=this.elements[0]*this.elements[6]-this.elements[2]*this.elements[4],d=this.elements[0]*this.elements[7]-this.elements[3]*this.elements[4],c=this.elements[1]*this.elements[6]-this.elements[2]*this.elements[5],f=this.elements[1]*this.elements[7]-this.elements[3]*this.elements[5],e=this.elements[2]*this.elements[7]-this.elements[3]*this.elements[6],g=this.elements[8]* this.elements[13]-this.elements[9]*this.elements[12],h=this.elements[8]*this.elements[14]-this.elements[10]*this.elements[12],s=this.elements[8]*this.elements[15]-this.elements[11]*this.elements[12],k=this.elements[9]*this.elements[14]-this.elements[10]*this.elements[13],m=this.elements[9]*this.elements[15]-this.elements[11]*this.elements[13],n=this.elements[10]*this.elements[15]-this.elements[11]*this.elements[14],p=a*n-b*m+d*k+c*s-f*h+e*g;if(1E-9>=Math.abs(p))return!1;var l=[];l[0]=+this.elements[5]* n-this.elements[6]*m+this.elements[7]*k;l[4]=-this.elements[4]*n+this.elements[6]*s-this.elements[7]*h;l[8]=+this.elements[4]*m-this.elements[5]*s+this.elements[7]*g;l[12]=-this.elements[4]*k+this.elements[5]*h-this.elements[6]*g;l[1]=-this.elements[1]*n+this.elements[2]*m-this.elements[3]*k;l[5]=+this.elements[0]*n-this.elements[2]*s+this.elements[3]*h;l[9]=-this.elements[0]*m+this.elements[1]*s-this.elements[3]*g;l[13]=+this.elements[0]*k-this.elements[1]*h+this.elements[2]*g;l[2]=+this.elements[13]* e-this.elements[14]*f+this.elements[15]*c;l[6]=-this.elements[12]*e+this.elements[14]*d-this.elements[15]*b;l[10]=+this.elements[12]*f-this.elements[13]*d+this.elements[15]*a;l[14]=-this.elements[12]*c+this.elements[13]*b-this.elements[14]*a;l[3]=-this.elements[9]*e+this.elements[10]*f-this.elements[11]*c;l[7]=+this.elements[8]*e-this.elements[10]*d+this.elements[11]*b;l[11]=-this.elements[8]*f+this.elements[9]*d-this.elements[11]*a;l[15]=+this.elements[8]*c-this.elements[9]*b+this.elements[10]*a; a=1/p;l[0]*=a;l[1]*=a;l[2]*=a;l[3]*=a;l[4]*=a;l[5]*=a;l[6]*=a;l[7]*=a;l[8]*=a;l[9]*=a;l[10]*=a;l[11]*=a;l[12]*=a;l[13]*=a;l[14]*=a;l[15]*=a;this.elements=l.slice();return!0},toString:function(){for(var a="",b=0;15>b;b++)a+=this.elements[b]+", ";return a+=this.elements[15]},print:function(){var a=fd(this.elements),a=""+f.nfs(this.elements[0],a,4)+" "+f.nfs(this.elements[1],a,4)+" "+f.nfs(this.elements[2],a,4)+" "+f.nfs(this.elements[3],a,4)+"\n"+f.nfs(this.elements[4],a,4)+" "+f.nfs(this.elements[5], a,4)+" "+f.nfs(this.elements[6],a,4)+" "+f.nfs(this.elements[7],a,4)+"\n"+f.nfs(this.elements[8],a,4)+" "+f.nfs(this.elements[9],a,4)+" "+f.nfs(this.elements[10],a,4)+" "+f.nfs(this.elements[11],a,4)+"\n"+f.nfs(this.elements[12],a,4)+" "+f.nfs(this.elements[13],a,4)+" "+f.nfs(this.elements[14],a,4)+" "+f.nfs(this.elements[15],a,4)+"\n\n";f.println(a)},invTranslate:function(a,b,d){this.preApply(1,0,0,-a,0,1,0,-b,0,0,1,-d,0,0,0,1)},invRotateX:function(a){var b=Math.cos(-a);a=Math.sin(-a);this.preApply([1, 0,0,0,0,b,-a,0,0,a,b,0,0,0,0,1])},invRotateY:function(a){var b=Math.cos(-a);a=Math.sin(-a);this.preApply([b,0,a,0,0,1,0,0,-a,0,b,0,0,0,0,1])},invRotateZ:function(a){var b=Math.cos(-a);a=Math.sin(-a);this.preApply([b,-a,0,0,a,b,0,0,0,0,1,0,0,0,0,1])},invScale:function(a,b,d){this.preApply([1/a,0,0,0,0,1/b,0,0,0,0,1/d,0,0,0,0,1])}};var Za=f.PMatrixStack=function(){this.matrixStack=[]};Za.prototype.load=function(){var a=ha.$newPMatrix();1===arguments.length?a.set(arguments[0]):a.set(arguments);this.matrixStack.push(a)}; E.prototype.$newPMatrix=function(){return new Ya};B.prototype.$newPMatrix=function(){return new I};Za.prototype.push=function(){this.matrixStack.push(this.peek())};Za.prototype.pop=function(){return this.matrixStack.pop()};Za.prototype.peek=function(){var a=ha.$newPMatrix();a.set(this.matrixStack[this.matrixStack.length-1]);return a};Za.prototype.mult=function(a){this.matrixStack[this.matrixStack.length-1].apply(a)};f.split=function(a,b){return a.split(b)};f.splitTokens=function(a,b){if(b===g)return a.split(/\s+/g); var d=b.split(/()/g),c="",f=a.length,e,h,k=[];for(e=0;e>8)};f.peg=function(a){return 0>a?0:255>>24)+L,255)<<24;d+=(S-d)*L>>8;c+=(h-c)*L>>8;L=x+((pd-x)*L>>8);return b| (0>d?0:255c?0:255L?0:255>>24,h=a&c,k=a&f,w=a&e,m=L&c,l=L&f,n=L&e;return g(((a&b)>>>24)+d,255)<<24|h+((m-h)*d>>8)&c|k+((l-k)*d>>8)&f|w+((n-w)*d>>8)&e},add:function(a,L){var d=(L&b)>>>24;return g(((a&b)>>>24)+d,255)<<24|g((a&c)+((L&c)>>8)*d,c)&c|g((a&f)+((L&f)>>8)*d,f)&f|g((a&e)+((L&e)*d>>8),e)},subtract:function(a, L){var d=(L&b)>>>24;return g(((a&b)>>>24)+d,255)<<24|h((a&c)-((L&c)>>8)*d,f)&c|h((a&f)-((L&f)>>8)*d,e)&f|h((a&e)-((L&e)*d>>8),0)},lightest:function(a,L){var d=(L&b)>>>24;return g(((a&b)>>>24)+d,255)<<24|h(a&c,((L&c)>>8)*d)&c|h(a&f,((L&f)>>8)*d)&f|h(a&e,(L&e)*d>>8)},darkest:function(a,L){var d=(L&b)>>>24,h=a&c,k=a&f,w=a&e,m=g(a&c,((L&c)>>8)*d),l=g(a&f,((L&f)>>8)*d),n=g(a&e,(L&e)*d>>8);return g(((a&b)>>>24)+d,255)<<24|h+((m-h)*d>>8)&c|k+((l-k)*d>>8)&f|w+((n-w)*d>>8)&e},difference:function(d,g){var h= (d&c)>>16,k=(d&f)>>8,w=d&e,W=(g&c)>>16,m=(g&f)>>8,l=g&e;return a(d,(g&b)>>>24,h,k,w,W,m,l,h>W?h-W:W-h,k>m?k-m:m-k,w>l?w-l:l-w)},exclusion:function(d,g){var h=(d&c)>>16,k=(d&f)>>8,w=d&e,W=(g&c)>>16,m=(g&f)>>8,l=g&e;return a(d,(g&b)>>>24,h,k,w,W,m,l,h+W-(h*W>>7),k+m-(k*m>>7),w+l-(w*l>>7))},multiply:function(d,g){var h=(d&c)>>16,k=(d&f)>>8,w=d&e,W=(g&c)>>16,m=(g&f)>>8,l=g&e;return a(d,(g&b)>>>24,h,k,w,W,m,l,h*W>>8,k*m>>8,w*l>>8)},screen:function(d,g){var h=(d&c)>>16,k=(d&f)>>8,w=d&e,W=(g&c)>>16,m=(g& f)>>8,l=g&e;return a(d,(g&b)>>>24,h,k,w,W,m,l,255-((255-h)*(255-W)>>8),255-((255-k)*(255-m)>>8),255-((255-w)*(255-l)>>8))},hard_light:function(d,g){var h=(d&c)>>16,k=(d&f)>>8,w=d&e,W=(g&c)>>16,m=(g&f)>>8,l=g&e;return a(d,(g&b)>>>24,h,k,w,W,m,l,128>W?h*W>>7:255-((255-h)*(255-W)>>7),128>m?k*m>>7:255-((255-k)*(255-m)>>7),128>l?w*l>>7:255-((255-w)*(255-l)>>7))},soft_light:function(d,g){var h=(d&c)>>16,k=(d&f)>>8,w=d&e,W=(g&c)>>16,m=(g&f)>>8,l=g&e;return a(d,(g&b)>>>24,h,k,w,W,m,l,(h*W>>7)+(h*h>>8)-(h* h*W>>15),(k*m>>7)+(k*k>>8)-(k*k*m>>15),(w*l>>7)+(w*w>>8)-(w*w*l>>15))},overlay:function(d,g){var h=(d&c)>>16,k=(d&f)>>8,w=d&e,W=(g&c)>>16,m=(g&f)>>8,l=g&e;return a(d,(g&b)>>>24,h,k,w,W,m,l,128>h?h*W>>7:255-((255-h)*(255-W)>>7),128>k?k*m>>7:255-((255-k)*(255-m)>>7),128>w?w*l>>7:255-((255-w)*(255-l)>>7))},dodge:function(d,g){var h=(g&b)>>>24,k=(d&c)>>16,w=(d&f)>>8,W=d&e,m=(g&c)>>16,l=(g&f)>>8,n=g&e,p=255;255!==m&&(p=(k<<8)/(255-m),p=0>p?0:255r?0:255< r?255:r);var t=255;255!==n&&(t=(W<<8)/(255-n),t=0>t?0:255>>24,k=(d&c)>>16,w=(d&f)>>8,W=d&e,m=(g&c)>>16,l=(g&f)>>8,n=g&e,p=0;0!==m&&(p=(255-k<<8)/m,p=255-(0>p?0:255r?0:255t?0:255b?0:b)<<24&d.ALPHA_MASK)):a=Va===d.RGB?ta(a,a,a,b):Va===d.HSB?ta(0,0,a/xa*ya,b):void 0,a):"number"===typeof a?$b(a):ta(xa,Ea,ya,ia)};f.color.toString=function(a){return"rgba("+((a&d.RED_MASK)>>>16)+","+((a&d.GREEN_MASK)>>>8)+","+(a&d.BLUE_MASK)+","+((a&d.ALPHA_MASK)>>>24)/255+")"};f.color.toInt=function(a,b,c,f){return f<<24&d.ALPHA_MASK|a<<16&d.RED_MASK|b<<8&d.GREEN_MASK|c&d.BLUE_MASK};f.color.toArray= function(a){return[(a&d.RED_MASK)>>>16,(a&d.GREEN_MASK)>>>8,a&d.BLUE_MASK,(a&d.ALPHA_MASK)>>>24]};f.color.toGLArray=function(a){return[((a&d.RED_MASK)>>>16)/255,((a&d.GREEN_MASK)>>>8)/255,(a&d.BLUE_MASK)/255,((a&d.ALPHA_MASK)>>>24)/255]};f.color.toRGB=function(a,b,d){a=a>xa?xa:a;b=b>Ea?Ea:b;d=d>ya?ya:d;a=360*(a/xa);b=100*(b/Ea);d=100*(d/ya);var c=Math.round(255*(d/100));if(0===b)return[c,c,c];a%=360;var f=a%60,e=Math.round(255*(d*(100-b)/1E4)),g=Math.round(255*(d*(6E3-b*f)/6E5));b=Math.round(255* (d*(6E3-b*(60-f))/6E5));switch(Math.floor(a/60)){case 0:return[c,b,e];case 1:return[g,c,e];case 2:return[e,c,b];case 3:return[e,g,c];case 4:return[b,e,c];case 5:return[c,e,g]}};f.brightness=function(a){return bb(a)[2]};f.saturation=function(a){return bb(a)[1]};f.hue=function(a){return bb(a)[0]};f.red=function(a){return((a&d.RED_MASK)>>>16)/255*xa};f.green=function(a){return((a&d.GREEN_MASK)>>>8)/255*Ea};f.blue=function(a){return(a&d.BLUE_MASK)/255*ya};f.alpha=function(a){return((a&d.ALPHA_MASK)>>> 24)/255*ia};f.lerpColor=function(a,b,c){var e,g,h,k,m,s;a=f.color(a);b=f.color(b);if(Va===d.HSB)return h=bb(a),a=((a&d.ALPHA_MASK)>>>24)/ia,g=bb(b),b=((b&d.ALPHA_MASK)>>>24)/ia,s=f.lerp(h[0],g[0],c),e=f.lerp(h[1],g[1],c),h=f.lerp(h[2],g[2],c),h=f.color.toRGB(s,e,h),c=f.lerp(a,b,c)*ia,c<<24&d.ALPHA_MASK|h[0]<<16&d.RED_MASK|h[1]<<8&d.GREEN_MASK|h[2]&d.BLUE_MASK;e=(a&d.RED_MASK)>>>16;g=(a&d.GREEN_MASK)>>>8;h=a&d.BLUE_MASK;a=((a&d.ALPHA_MASK)>>>24)/ia;k=(b&d.RED_MASK)>>>16;m=(b&d.GREEN_MASK)>>>8;s=b& d.BLUE_MASK;b=((b&d.ALPHA_MASK)>>>24)/ia;e=f.lerp(e,k,c)|0;g=f.lerp(g,m,c)|0;h=f.lerp(h,s,c)|0;c=f.lerp(a,b,c)*ia;return c<<24&d.ALPHA_MASK|e<<16&d.RED_MASK|g<<8&d.GREEN_MASK|h&d.BLUE_MASK};f.colorMode=function(){Va=arguments[0];1b;b++)a[b]=0;a[10]=a[15]=1;X.prototype.applyMatrix.apply(this,a)};f.rotateX=function(a){M.rotateX(a);ga.invRotateX(a)};E.prototype.rotateZ=function(){throw"rotateZ() is not supported in 2D mode. Use rotate(float) instead."; };B.prototype.rotateZ=function(a){M.rotateZ(a);ga.invRotateZ(a)};f.rotateY=function(a){M.rotateY(a);ga.invRotateY(a)};E.prototype.rotate=function(a){M.rotateZ(a);ga.invRotateZ(a);h.rotate(a)};B.prototype.rotate=function(a){f.rotateZ(a)};E.prototype.shearX=function(a){M.shearX(a);h.transform(1,0,a,1,0,0)};B.prototype.shearX=function(a){M.shearX(a)};E.prototype.shearY=function(a){M.shearY(a);h.transform(1,a,0,1,0,0)};B.prototype.shearY=function(a){M.shearY(a)};f.pushStyle=function(){h.save();f.pushMatrix(); bd.push({doFill:R,currentFillColor:La,doStroke:C,currentStrokeColor:ja,curTint:gb,curRectMode:qa,curColorMode:Va,colorModeX:xa,colorModeZ:ya,colorModeY:Ea,colorModeA:ia,curTextFont:ba,horizontalTextAlignment:nb,verticalTextAlignment:Wa,textMode:ic,curFontName:yb,curTextSize:Na,curTextAscent:Xa,curTextDescent:Ma,curTextLeading:Aa})};f.popStyle=function(){var a=bd.pop();if(a)Sa(),f.popMatrix(),R=a.doFill,La=a.currentFillColor,C=a.doStroke,ja=a.currentStrokeColor,gb=a.curTint,qa=a.curRectMode,Va=a.curColorMode, xa=a.colorModeX,ya=a.colorModeZ,Ea=a.colorModeY,ia=a.colorModeA,ba=a.curTextFont,yb=a.curFontName,Na=a.curTextSize,nb=a.horizontalTextAlignment,Wa=a.verticalTextAlignment,ic=a.textMode,Xa=a.curTextAscent,Ma=a.curTextDescent,Aa=a.curTextLeading;else throw"Too many popStyle() without enough pushStyle()";};f.year=function(){return(new Date).getFullYear()};f.month=function(){return(new Date).getMonth()+1};f.day=function(){return(new Date).getDate()};f.hour=function(){return(new Date).getHours()};f.minute= function(){return(new Date).getMinutes()};f.second=function(){return(new Date).getSeconds()};f.millis=function(){return Date.now()-Oc};E.prototype.redraw=function(){cb();h.lineWidth=ea;var a=f.pmouseX,b=f.pmouseY;f.pmouseX=cc;f.pmouseY=dc;h.save();f.draw();Sa();cc=f.mouseX;dc=f.mouseY;f.pmouseX=a;f.pmouseY=b};B.prototype.redraw=function(){cb();var a=f.pmouseX,b=f.pmouseY;f.pmouseX=cc;f.pmouseY=dc;h.clear(h.DEPTH_BUFFER_BIT);Fa={attributes:{},locations:{}};f.noLights();f.lightFalloff(1,0,0);f.shininess(1); f.ambient(255,255,255);f.specular(0,0,0);f.emissive(0,0,0);f.camera();f.draw();cc=f.mouseX;dc=f.mouseY;f.pmouseX=a;f.pmouseY=b};f.noLoop=function(){eb=Da=!1;clearInterval(ma);da.onPause()};f.loop=function(){eb||(tc=Date.now(),ec=0,ma=m.setInterval(function(){try{da.onFrameStart(),f.redraw(),da.onFrameEnd()}catch(a){throw m.clearInterval(ma),a;}},Kc),eb=Da=!0,da.onLoop())};f.frameRate=function(a){Zb=a;Kc=1E3/Zb;Da&&(f.noLoop(),f.loop())};f.exit=function(){m.clearInterval(ma);var a=f.externals.canvas.id; q.splice(Yb[a],1);delete Yb[a];delete T.onmousedown;for(var b in K.lib)K.lib.hasOwnProperty(b)&&K.lib[b].hasOwnProperty("detach")&&K.lib[b].detach(f);for(a=vb.length;a--;){var d=vb[a];b=d.elem;var c=d.type,d=d.fn;b.removeEventListener?b.removeEventListener(c,d,!1):b.detachEvent&&b.detachEvent("on"+c,d)}da.onExit()};f.cursor=function(){if(1b||0> d||d>=a.height||b>=a.width)throw"x and y must be non-negative and less than the dimensions of the image";}else b=a.width>>>1,d=a.height>>>1;a='url("'+a.toDataURL()+'") '+b+" "+d+", default";T.style.cursor=a}else T.style.cursor=1===arguments.length?arguments[0]:od};f.noCursor=function(){T.style.cursor=d.NOCURSOR};f.link=function(a,b){b!==g?m.open(a,b):m.location=a};f.beginDraw=r;f.endDraw=r;E.prototype.toImageData=function(a,b,d,c){a=a!==g?a:0;b=b!==g?b:0;d=d!==g?d:f.width;c=c!==g?c:f.height;return h.getImageData(a, b,d,c)};B.prototype.toImageData=function(a,b,d,c){a=a!==g?a:0;b=b!==g?b:0;d=d!==g?d:f.width;c=c!==g?c:f.height;var e=p.createElement("canvas").getContext("2d").createImageData(d,c),k=new fa(4*d*c);h.readPixels(a,b,d,c,h.RGBA,h.UNSIGNED_BYTE,k);a=0;b=k.length;for(var w=e.data;a>>d-1&1);)d--;for(var c="";0>>--d&1?"1":"0";return c};f.unbinary=function(a){for(var b=a.length-1,d=1,c=0;0<=b;){var f=a[b--];if("0"!==f&&"1"!==f)throw"the value passed into unbinary was not an 8 bit binary number";"1"===f&&(c+=d);d<<=1}return c};f.hex=function(a,b){1===arguments.length&&(b=a instanceof Char?4:8);var d=a,c=b,c=c===g||null===c?c=8:c;0>d&&(d=4294967295+d+1);for(d=Number(d).toString(16).toUpperCase();d.length=c&&(d=d.substring(d.length-c,d.length));return d};f.unhex=function(a){if(a instanceof Array){for(var b=[],d=0;d 0.5){ discard; } } if(uIsDrawingText == 1){ float alpha = texture2D(uSampler, vTextureCoord).a; gl_FragColor = vec4(vFrontColor.rgb * alpha, alpha); } else{ gl_FragColor = vFrontColor; }}");na=Ic(h,"varying vec4 vFrontColor;attribute vec3 aVertex;attribute vec4 aColor;uniform mat4 uView;uniform mat4 uProjection;uniform float uPointSize;void main(void) { vFrontColor = aColor; gl_PointSize = uPointSize; gl_Position = uProjection * uView * vec4(aVertex, 1.0);}", "#ifdef GL_ES\nprecision highp float;\n#endif\nvarying vec4 vFrontColor;uniform bool uSmooth;void main(void){ if(uSmooth == true){ float dist = distance(gl_PointCoord, vec2(0.5)); if(dist > 0.5){ discard; } } gl_FragColor = vFrontColor;}");f.strokeWeight(1);z=Ic(h,td,"#ifdef GL_ES\nprecision highp float;\n#endif\nvarying vec4 vFrontColor;uniform sampler2D uSampler;uniform bool uUsingTexture;varying vec2 vTexture;void main(void){ if( uUsingTexture ){ gl_FragColor = vec4(texture2D(uSampler, vTexture.xy)) * vFrontColor; } else{ gl_FragColor = vFrontColor; }}"); h.useProgram(z);Z("usingTexture3d",z,"usingTexture",ua);f.lightFalloff(1,0,0);f.shininess(1);f.ambient(255,255,255);f.specular(0,0,0);f.emissive(0,0,0);wc=h.createBuffer();h.bindBuffer(h.ARRAY_BUFFER,wc);h.bufferData(h.ARRAY_BUFFER,cd,h.STATIC_DRAW);xc=h.createBuffer();h.bindBuffer(h.ARRAY_BUFFER,xc);h.bufferData(h.ARRAY_BUFFER,rd,h.STATIC_DRAW);yc=h.createBuffer();h.bindBuffer(h.ARRAY_BUFFER,yc);h.bufferData(h.ARRAY_BUFFER,dd,h.STATIC_DRAW);gc=h.createBuffer();h.bindBuffer(h.ARRAY_BUFFER,gc);h.bufferData(h.ARRAY_BUFFER, Hc,h.STATIC_DRAW);zc=h.createBuffer();h.bindBuffer(h.ARRAY_BUFFER,zc);h.bufferData(h.ARRAY_BUFFER,sd,h.STATIC_DRAW);Sb=h.createBuffer();Ac=h.createBuffer();Pc=h.createBuffer();Bc=h.createBuffer();Qc=h.createBuffer();Rc=h.createBuffer();hc=h.createBuffer();h.bindBuffer(h.ARRAY_BUFFER,hc);h.bufferData(h.ARRAY_BUFFER,new A([0,0,0]),h.STATIC_DRAW);Cc=h.createBuffer();h.bindBuffer(h.ARRAY_BUFFER,Cc);h.bufferData(h.ARRAY_BUFFER,new A([1,1,0,-1,1,0,-1,-1,0,1,-1,0]),h.STATIC_DRAW);Dc=h.createBuffer();h.bindBuffer(h.ARRAY_BUFFER, Dc);h.bufferData(h.ARRAY_BUFFER,new A([0,0,1,0,1,1,0,1]),h.STATIC_DRAW);Ec=h.createBuffer();h.bindBuffer(h.ELEMENT_ARRAY_BUFFER,Ec);h.bufferData(h.ELEMENT_ARRAY_BUFFER,new v([0,1,2,2,3,0]),h.STATIC_DRAW);qb=new I;Ra=new I;M=new I;ga=new I;Ha=new I;f.camera();f.perspective();zb=new Za;Ab=new Za;Rb=new I;fc=new I;wb=new I;xb=new I;uc=new I;vc=new I;vc.set(-1,3,-3,1,3,-6,3,0,-3,3,0,0,1,0,0,0);X.prototype.size.apply(this,arguments)}}();E.prototype.ambientLight=X.prototype.a3DOnlyFunction;B.prototype.ambientLight= function(a,b,c,f,e,g){if(O===d.MAX_LIGHTS)throw"can only create "+d.MAX_LIGHTS+" lights";f=new PVector(f,e,g);e=new I;e.scale(1,-1,1);e.apply(M.array());e.mult(f,f);a=ta(a,b,c,0);a=[((a&d.RED_MASK)>>>16)/255,((a&d.GREEN_MASK)>>>8)/255,(a&d.BLUE_MASK)/255];h.useProgram(z);U("uLights.color.3d."+O,z,"uLights"+O+".color",a);U("uLights.position.3d."+O,z,"uLights"+O+".position",f.array());Z("uLights.type.3d."+O,z,"uLights"+O+".type",0);Z("uLightCount3d",z,"uLightCount",++O)};E.prototype.directionalLight= X.prototype.a3DOnlyFunction;B.prototype.directionalLight=function(a,b,c,f,e,g){if(O===d.MAX_LIGHTS)throw"can only create "+d.MAX_LIGHTS+" lights";h.useProgram(z);var k=new I;k.scale(1,-1,1);k.apply(M.array());k=k.array();f=[k[0]*f+k[4]*e+k[8]*g,k[1]*f+k[5]*e+k[9]*g,k[2]*f+k[6]*e+k[10]*g];a=ta(a,b,c,0);U("uLights.color.3d."+O,z,"uLights"+O+".color",[((a&d.RED_MASK)>>>16)/255,((a&d.GREEN_MASK)>>>8)/255,(a&d.BLUE_MASK)/255]);U("uLights.position.3d."+O,z,"uLights"+O+".position",f);Z("uLights.type.3d."+ O,z,"uLights"+O+".type",1);Z("uLightCount3d",z,"uLightCount",++O)};E.prototype.lightFalloff=X.prototype.a3DOnlyFunction;B.prototype.lightFalloff=function(a,b,d){h.useProgram(z);U("uFalloff3d",z,"uFalloff",[a,b,d])};E.prototype.lightSpecular=X.prototype.a3DOnlyFunction;B.prototype.lightSpecular=function(a,b,c){a=ta(a,b,c,0);a=[((a&d.RED_MASK)>>>16)/255,((a&d.GREEN_MASK)>>>8)/255,(a&d.BLUE_MASK)/255];h.useProgram(z);U("uSpecular3d",z,"uSpecular",a)};f.lights=function(){f.ambientLight(128,128,128);f.directionalLight(128, 128,128,0,0,-1);f.lightFalloff(1,0,0);f.lightSpecular(0,0,0)};E.prototype.pointLight=X.prototype.a3DOnlyFunction;B.prototype.pointLight=function(a,b,c,f,e,g){if(O===d.MAX_LIGHTS)throw"can only create "+d.MAX_LIGHTS+" lights";f=new PVector(f,e,g);e=new I;e.scale(1,-1,1);e.apply(M.array());e.mult(f,f);a=ta(a,b,c,0);a=[((a&d.RED_MASK)>>>16)/255,((a&d.GREEN_MASK)>>>8)/255,(a&d.BLUE_MASK)/255];h.useProgram(z);U("uLights.color.3d."+O,z,"uLights"+O+".color",a);U("uLights.position.3d."+O,z,"uLights"+O+".position", f.array());Z("uLights.type.3d."+O,z,"uLights"+O+".type",2);Z("uLightCount3d",z,"uLightCount",++O)};E.prototype.noLights=X.prototype.a3DOnlyFunction;B.prototype.noLights=function(){O=0;h.useProgram(z);Z("uLightCount3d",z,"uLightCount",O)};E.prototype.spotLight=X.prototype.a3DOnlyFunction;B.prototype.spotLight=function(a,b,c,f,e,g,k,m,s,l,n){if(O===d.MAX_LIGHTS)throw"can only create "+d.MAX_LIGHTS+" lights";h.useProgram(z);f=new PVector(f,e,g);e=new I;e.scale(1,-1,1);e.apply(M.array());e.mult(f,f); e=e.array();k=[e[0]*k+e[4]*m+e[8]*s,e[1]*k+e[5]*m+e[9]*s,e[2]*k+e[6]*m+e[10]*s];a=ta(a,b,c,0);U("uLights.color.3d."+O,z,"uLights"+O+".color",[((a&d.RED_MASK)>>>16)/255,((a&d.GREEN_MASK)>>>8)/255,(a&d.BLUE_MASK)/255]);U("uLights.position.3d."+O,z,"uLights"+O+".position",f.array());U("uLights.direction.3d."+O,z,"uLights"+O+".direction",k);U("uLights.concentration.3d."+O,z,"uLights"+O+".concentration",n);U("uLights.angle.3d."+O,z,"uLights"+O+".angle",l);Z("uLights.type.3d."+O,z,"uLights"+O+".type",3); Z("uLightCount3d",z,"uLightCount",++O)};E.prototype.beginCamera=function(){throw"beginCamera() is not available in 2D mode";};B.prototype.beginCamera=function(){if(kc)throw"You cannot call beginCamera() again before calling endCamera()";kc=!0;M=Ra;ga=qb};E.prototype.endCamera=function(){throw"endCamera() is not available in 2D mode";};B.prototype.endCamera=function(){if(!kc)throw"You cannot call endCamera() before calling beginCamera()";M.set(qb);ga.set(Ra);kc=!1};f.camera=function(a,b,d,c,e,h,k, m,s){a===g&&(Gc=f.width/2,rb=f.height/2,sb=rb/Math.tan(lc/2),a=Gc,b=rb,d=sb,c=Gc,e=rb,k=h=0,m=1,s=0);c=new PVector(a-c,b-e,d-h);var l=new PVector(k,m,s);c.normalize();s=PVector.cross(l,c);l=PVector.cross(c,s);s.normalize();l.normalize();k=s.x;m=s.y;s=s.z;e=l.x;h=l.y;var l=l.z,n=c.x,p=c.y;c=c.z;qb.set(k,m,s,0,e,h,l,0,n,p,c,0,0,0,0,1);qb.translate(-a,-b,-d);Ra.reset();Ra.invApply(k,m,s,0,e,h,l,0,n,p,c,0,0,0,0,1);Ra.translate(a,b,d);M.set(qb);ga.set(Ra)};f.perspective=function(a,b,d,c){0===arguments.length&& (rb=T.height/2,sb=rb/Math.tan(lc/2),Zc=sb/10,$c=10*sb,ad=f.width/f.height,a=lc,b=ad,d=Zc,c=$c);var e,g;e=d*Math.tan(a/2);g=-e;f.frustum(g*b,e*b,g,e,d,c)};E.prototype.frustum=function(){throw"Processing.js: frustum() is not supported in 2D mode";};B.prototype.frustum=function(a,b,d,c,f,e){Ha=new I;Ha.set(2*f/(b-a),0,(b+a)/(b-a),0,0,2*f/(c-d),(c+d)/(c-d),0,0,0,-(e+f)/(e-f),-(2*e*f)/(e-f),0,0,-1,0);a=new I;a.set(Ha);a.transpose();h.useProgram(J);V("projection2d",J,"uProjection",!1,a.array());h.useProgram(z); V("projection3d",z,"uProjection",!1,a.array());h.useProgram(na);V("uProjectionUS",na,"uProjection",!1,a.array())};f.ortho=function(a,b,d,c,e,g){0===arguments.length&&(a=0,b=f.width,d=0,c=f.height,e=-10,g=10);var k=2/(b-a),m=2/(c-d),s=-2/(g-e),l=-(b+a)/(b-a),n=-(c+d)/(c-d),p=-(g+e)/(g-e);Ha=new I;Ha.set(k,0,0,l,0,m,0,n,0,0,s,p,0,0,0,1);k=new I;k.set(Ha);k.transpose();h.useProgram(J);V("projection2d",J,"uProjection",!1,k.array());h.useProgram(z);V("projection3d",z,"uProjection",!1,k.array());h.useProgram(na); V("uProjectionUS",na,"uProjection",!1,k.array())};f.printProjection=function(){Ha.print()};f.printCamera=function(){qb.print()};E.prototype.box=X.prototype.a3DOnlyFunction;B.prototype.box=function(a,b,d){b&&d||(b=d=a);var c=new I;c.scale(a,b,d);a=new I;a.scale(1,-1,1);a.apply(M.array());a.transpose();R&&(h.useProgram(z),V("model3d",z,"uModel",!1,c.array()),V("view3d",z,"uView",!1,a.array()),h.enable(h.POLYGON_OFFSET_FILL),h.polygonOffset(1,1),U("color3d",z,"uColor",ka),0a&&(a=3);2>b&&(b=2);if(a!==pb||b!==jc){var f=d.SINCOS_LENGTH/a,e=new A(a),g=new A(a);for(c=0;cpb||2>jc)&&f.sphereDetail(30);var b=new I;b.scale(a,a,a);a=new I;a.scale(1,-1,1);a.apply(M.array());a.transpose();if(R){if(0f?0:f,e=1e?0:e);h[0]=a;h[1]=b;h[2]=c||0;h[3]=f||0;h[4]=e||0;h[5]=ka[0];h[6]=ka[1];h[7]=ka[2];h[8]=ka[3];h[9]=Y[0];h[10]=Y[1];h[11]=Y[2];h[12]=Y[3];h[13]=Fb;h[14]=Db;h[15]=tb;t.push(h)};var gd=function(a,b){var d=new I;d.scale(1,-1,1);d.apply(M.array());d.transpose();h.useProgram(na);V("uViewUS",na,"uView",!1,d.array());Z("uSmoothUS",na,"uSmooth",ra);$("aVertexUS",na,"aVertex",3,hc);h.bufferData(h.ARRAY_BUFFER,new A(a),h.STREAM_DRAW);$("aColorUS",na,"aColor", 4,Bc);h.bufferData(h.ARRAY_BUFFER,new A(b),h.STREAM_DRAW);h.drawArrays(h.POINTS,0,a.length/3)},Ca=function(a,b,d){b="LINES"===b?h.LINES:"LINE_LOOP"===b?h.LINE_LOOP:h.LINE_STRIP;var c=new I;c.scale(1,-1,1);c.apply(M.array());c.transpose();h.useProgram(na);V("uViewUS",na,"uView",!1,c.array());$("aVertexUS",na,"aVertex",3,Ac);h.bufferData(h.ARRAY_BUFFER,new A(a),h.STREAM_DRAW);$("aColorUS",na,"aColor",4,Qc);h.bufferData(h.ARRAY_BUFFER,new A(d),h.STREAM_DRAW);h.drawArrays(b,0,a.length/3)},$a=function(a, b,d,c){b="TRIANGLES"===b?h.TRIANGLES:"TRIANGLE_FAN"===b?h.TRIANGLE_FAN:h.TRIANGLE_STRIP;var f=new I;f.scale(1,-1,1);f.apply(M.array());f.transpose();h.useProgram(z);V("model3d",z,"uModel",!1,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);V("view3d",z,"uView",!1,f.array());h.enable(h.POLYGON_OFFSET_FILL);h.polygonOffset(1,1);U("color3d",z,"uColor",[-1,0,0,0]);$("vertex3d",z,"aVertex",3,Pc);h.bufferData(h.ARRAY_BUFFER,new A(a),h.STREAM_DRAW);ua&&null!==gb&&sc(d);$("aColor3d",z,"aColor",4,Bc);h.bufferData(h.ARRAY_BUFFER, new A(d),h.STREAM_DRAW);sa("aNormal3d",z,"aNormal");ua&&(Z("uUsingTexture3d",z,"uUsingTexture",ua),$("aTexture3d",z,"aTexture",2,Rc),h.bufferData(h.ARRAY_BUFFER,new A(c),h.STREAM_DRAW));h.drawArrays(b,0,a.length/3);h.disable(h.POLYGON_OFFSET_FILL)};E.prototype.endShape=function(a){if(0!==t.length){(a=a===d.CLOSE)&&t.push(t[0]);var b=[],c=[],e=[],k=[],m;ib=!0;var w,l,s=t.length;for(w=0;wl;l++)b.push(m[l]);for(w=0;wl;l++)c.push(m[l]);for(w=0;wl;l++)e.push(m[l]);for(w=0;wl;l++)h.lineTo(t[w+l][0],t[w+l][1]);h.lineTo(m[0],m[1]);R&&(f.fill(t[w+3][5]),wa());C&&(f.stroke(t[w+3][6]),za());h.closePath()}else if(aa===d.QUAD_STRIP){if(3s;s++)c.push(m[s]);for(l=0;ls;s++)f.push(m[s]);for(l=0;ls;s++)e.push(m[s]);for(l=0;ll;l++)f.push(t[0][l]);for(l=9;13>l;l++)e.push(t[0][l]);k.push(t[0][3]);k.push(t[0][4])}if(!Bb||aa!==d.POLYGON&&aa!==g)if(!Cb||aa!==d.POLYGON&&aa!==g){if(aa===d.POINTS){for(l=0;ls;s++)a.push(m[s]);gd(a,e)}else if(aa=== d.LINES){for(l=0;ls;s++)a.push(m[s]);for(l=0;ls;s++)f.push(m[s]);Ca(a,"LINES",e)}else if(aa===d.TRIANGLES){if(2s;s++)for(b=0;3>b;b++)a.push(t[l+s][b]),c.push(t[l+s][b]);for(s=0;3>s;s++)for(b=3;5>b;b++)k.push(t[l+s][b]);for(s=0;3>s;s++)for(b=5;9>b;b++)f.push(t[l+s][b]),e.push(t[l+s][b+4]);C&&Ca(a,"LINE_LOOP",e);(R||ua)&&$a(c,"TRIANGLES",f,k)}}else if(aa===d.TRIANGLE_STRIP){if(2s;s++)for(b=0;3>b;b++)a.push(t[l+s][b]),c.push(t[l+s][b]);for(s=0;3>s;s++)for(b=3;5>b;b++)k.push(t[l+s][b]);for(s=0;3>s;s++)for(b=5;9>b;b++)e.push(t[l+s][b+4]),f.push(t[l+s][b]);(R||ua)&&$a(c,"TRIANGLE_STRIP",f,k);C&&Ca(a,"LINE_LOOP",e)}}else if(aa===d.TRIANGLE_FAN){if(2l;l++)for(m=t[l],s=0;3>s;s++)a.push(m[s]);for(l=0;3>l;l++)for(m=t[l],s=9;13>s;s++)e.push(m[s]);C&&Ca(a,"LINE_LOOP",e);for(l=2;l+1s;s++)for(b=0;3>b;b++)a.push(t[l+s][b]);for(s=0;2>s;s++)for(b=9;13>b;b++)e.push(t[l+s][b]);C&&Ca(a,"LINE_STRIP",e)}(R||ua)&&$a(c,"TRIANGLE_FAN",f,k)}}else if(aa===d.QUADS)for(l=0;l+3s;s++)for(m=t[l+s],b=0;3>b;b++)a.push(m[b]);C&&Ca(a,"LINE_LOOP",e);if(R){c=[];f=[];k=[];for(s=0;3>s;s++)c.push(t[l][s]);for(s=5;9>s;s++)f.push(t[l][s]);for(s=0;3>s;s++)c.push(t[l+1][s]);for(s=5;9>s;s++)f.push(t[l+1][s]); for(s=0;3>s;s++)c.push(t[l+3][s]);for(s=5;9>s;s++)f.push(t[l+3][s]);for(s=0;3>s;s++)c.push(t[l+2][s]);for(s=5;9>s;s++)f.push(t[l+2][s]);ua&&(k.push(t[l+0][3]),k.push(t[l+0][4]),k.push(t[l+1][3]),k.push(t[l+1][4]),k.push(t[l+3][3]),k.push(t[l+3][4]),k.push(t[l+2][3]),k.push(t[l+2][4]));$a(c,"TRIANGLE_STRIP",f,k)}}else if(aa===d.QUAD_STRIP){if(3l;l++)for(m=t[l],s=0;3>s;s++)a.push(m[s]);for(l=0;2>l;l++)for(m=t[l],s=9;13>s;s++)e.push(m[s]);Ca(a,"LINE_STRIP",e);4s;s++)a.push(t[l+1][s]);for(s=0;3>s;s++)a.push(t[l+3][s]);for(s=0;3>s;s++)a.push(t[l+2][s]);for(s=0;3>s;s++)a.push(t[l+0][s]);for(s=9;13>s;s++)e.push(t[l+1][s]);for(s=9;13>s;s++)e.push(t[l+3][s]);for(s=9;13>s;s++)e.push(t[l+2][s]);for(s=9;13>s;s++)e.push(t[l+0][s]);C&&Ca(a,"LINE_STRIP",e)}(R||ua)&&$a(c,"TRIANGLE_LIST",f,k)}}else if(1===n){for(s=0;3>s;s++)a.push(t[0][s]);for(s=9;13>s;s++)e.push(t[0][s]);gd(a,e)}else{for(l=0;ls;s++)a.push(m[s]);for(s=5;9>s;s++)e.push(m[s])}C&&b?Ca(a,"LINE_LOOP",e):C&&!b&&Ca(a,"LINE_STRIP",e);(R||ua)&&$a(c,"TRIANGLE_FAN",f,k)}ua=!1;h.useProgram(z);Z("usingTexture3d",z,"uUsingTexture",ua)}else a=c,a.splice(a.length-3),e.splice(e.length-4),C&&Ca(a,null,e),R&&$a(c,"TRIANGLES",f);else C&&Ca(c,null,e),R&&$a(c,null,f);Cb=Bb=!1;va=[];oa=0}};var hd=function(a,b){var c=1/a,d=c*c,f=d*c;b.set(0,0,0,1,f,d,c,0,6*f,2*d,0,0,6*f,0,0,0)},id=function(){wb||(Rb=new I,wb=new I,Lc=!0);var a=oc;Rb.set((a- 1)/2,(a+3)/2,(-3-a)/2,(1-a)/2,1-a,(-5-a)/2,a+2,(a-1)/2,(a-1)/2,0,(1-a)/2,0,0,1,0,0);hd(pc,wb);uc||(fc=new I);fc.set(Rb);fc.preApply(uc);wb.apply(Rb)};E.prototype.bezierVertex=function(){Cb=!0;var a=[];if(ib)throw"vertex() must be used at least once before calling bezierVertex()";for(var b=0;b=c||hg;)g+=d.TWO_PI,h+=d.TWO_PI;h-g>d.TWO_PI&&(g=0,h=d.TWO_PI);c/=2;e/=2;a+=c;b+=e;g=0|0.5+2*g*f.RAD_TO_DEG;h=0|0.5+2*h*f.RAD_TO_DEG;var k,l;if(R){var m=C;C=!1;f.beginShape();f.vertex(a,b);for(k=g;k<=h;k++)l=k%d.SINCOS_LENGTH,f.vertex(a+Ub[l]*c,b+Tb[l]*e);f.endShape(d.CLOSE);C=m}if(C){m=R;R=!1;f.beginShape();for(k=g;k<=h;k++)l=k%d.SINCOS_LENGTH,f.vertex(a+Ub[l]*c,b+Tb[l]*e);f.endShape();R=m}}};E.prototype.line=function(a,b,c,d){if(C)if(a=Math.round(a), c=Math.round(c),b=Math.round(b),d=Math.round(d),a===c&&b===d)f.point(a,b);else{for(var e=g,k=g,l=!0,e=M.array(),m=[1,0,0,0,1,0],s=0;6>s&&l;s++)l=e[s]===m[s];l&&(a===c?(b>d&&(e=b,b=d,d=e),d++,1===ea%2&&h.translate(0.5,0)):b===d&&(a>c&&(e=a,a=c,c=e),c++,1===ea%2&&h.translate(0,0.5)),1===ea&&(k=h.lineCap,h.lineCap="butt"));h.beginPath();h.moveTo(a||0,b||0);h.lineTo(c||0,d||0);za();l&&(a===c&&1===ea%2?h.translate(-0.5,0):b===d&&1===ea%2&&h.translate(0,-0.5),1===ea&&(h.lineCap=k))}};B.prototype.line=function(a, b,c,d,e,k){if(e===g||k===g)k=0,e=d,d=c,c=0;a===d&&b===e&&c===k?f.point(a,b,c):(a=[a,b,c,d,e,k],b=new I,b.scale(1,-1,1),b.apply(M.array()),b.transpose(),0s||f>n)f= Math.min(s,n);if(k>s||k>n)k=Math.min(s,n);if(l>s||l>n)l=Math.min(s,n);if(m>s||m>n)m=Math.min(s,n);R&&!C||h.translate(0.5,0.5);h.beginPath();h.moveTo(a+f,b);h.lineTo(a+c-k,b);h.quadraticCurveTo(a+c,b,a+c,b+k);h.lineTo(a+c,b+e-l);h.quadraticCurveTo(a+c,b+e,a+c-l,b+e);h.lineTo(a+m,b+e);h.quadraticCurveTo(a,b+e,a,b+e-m);h.lineTo(a,b+f);h.quadraticCurveTo(a,b,a+f,b);R&&!C||h.translate(-0.5,-0.5);wa();za()}else C&&1===ea%2&&h.translate(0.5,0.5),h.beginPath(),h.rect(a,b,c,e),wa(),za(),C&&1===ea%2&&h.translate(-0.5, -0.5)};B.prototype.rect=function(a,b,c,e,f,k,l,m){if(f!==g)throw"rect() with rounded corners is not supported in 3D mode";qa===d.CORNERS?(c-=a,e-=b):qa===d.RADIUS?(c*=2,e*=2,a-=c/2,b-=e/2):qa===d.CENTER&&(a-=c/2,b-=e/2);f=new I;f.translate(a,b,0);f.scale(c,e,1);f.transpose();b=new I;b.scale(1,-1,1);b.apply(M.array());b.transpose();0=c&&0>=e))if(la===d.RADIUS?(c*=2,e*=2):la===d.CORNERS?(c-=a,e-=b,a+=c/2,b+=e/2):la===d.CORNER&&(a+=c/2,b+=e/2),c===e)h.beginPath(),h.arc(a,b,c/2,0,d.TWO_PI,!1),wa(),za();else{c/=2;e/=2;var g=0.5522847498307933*c,k=0.5522847498307933*e;f.beginShape();f.vertex(a+c,b);f.bezierVertex(a+c,b-k,a+g,b-e,a,b-e);f.bezierVertex(a-g,b-e,a-c,b-k,a-c,b);f.bezierVertex(a- c,b+k,a-g,b+e,a,b+e);f.bezierVertex(a+g,b+e,a+c,b+k,a+c,b);f.endShape()}};B.prototype.ellipse=function(a,b,c,e){a=a||0;b=b||0;if(!(0>=c&&0>=e)){la===d.RADIUS?(c*=2,e*=2):la===d.CORNERS?(c-=a,e-=b,a+=c/2,b+=e/2):la===d.CORNER&&(a+=c/2,b+=e/2);c/=2;e/=2;var g=0.5522847498307933*c,h=0.5522847498307933*e;f.beginShape();f.vertex(a+c,b);f.bezierVertex(a+c,b-h,0,a+g,b-e,0,a,b-e,0);f.bezierVertex(a-g,b-e,0,a-c,b-h,0,a-c,b,0);f.bezierVertex(a-c,b+h,0,a-g,b+e,0,a,b+e,0);f.bezierVertex(a+g,b+e,0,a+c,b+h,0,a+ c,b,0);f.endShape();if(R){for(g=e=c=0;gc;c++)a.push(t[g][c]);for(c=5;9>c;c++)b.push(t[g][c])}$a(a,"TRIANGLE_FAN",b)}}};f.normal=function(a,b,c){if(3!==arguments.length||"number"!==typeof a||"number"!==typeof b||"number"!==typeof c)throw"normal() requires three numeric arguments."; Fb=a;Db=b;tb=c;0!==aa&&(jb===d.NORMAL_MODE_AUTO?jb=d.NORMAL_MODE_SHAPE:jb===d.NORMAL_MODE_SHAPE&&(jb=d.NORMAL_MODE_VERTEX))};f.save=function(a,b){return b!==g?m.open(b.toDataURL(),"_blank"):m.open(f.externals.canvas.toDataURL(),"_blank")};var wd=0;f.saveFrame=function(a){a===g&&(a="screen-####.png");a=a.replace(/#+/,function(a){for(var b=""+wd++;b.length=f.width||0>a||0>b||b>=f.height?c=0:Qb?(a=4*((0|a)+f.width*(0|b)),c=f.imageData.data,c=c[a+3]<<24&d.ALPHA_MASK|c[a]<<16&d.RED_MASK|c[a+1]<<8&d.GREEN_MASK|c[a+2]&d.BLUE_MASK):(c=f.toImageData(0|a,0|b,1,1).data,c=c[3]<<24&d.ALPHA_MASK|c[0]<<16&d.RED_MASK|c[1]<<8&d.GREEN_MASK|c[2]&d.BLUE_MASK),c):void 0!==a?Kb(0,0,a.width,a.height,a):Jb(0,0,f.width,f.height)};f.createGraphics=function(a, b,c){var d=new K;d.size(a,b,c);d.background(0,0);return d};f.set=function(a,b,c,d){if(3===arguments.length)"number"===typeof c?aYc&&fb()):(c instanceof Ga||c.__isPImage)&&f.image(c,a,b);else if(4===arguments.length){if(d.isRemote)throw"Image is loaded remotely. Cannot set x,y.";var e=f.color.toArray(c),g=4*b*d.width+4*a,k=d.imageData.data;k[g]=e[0];k[g+ 1]=e[1];k[g+2]=e[2];k[g+3]=e[3]}};f.imageData={};f.pixels={getLength:function(){return f.imageData.data.length?f.imageData.data.length/4:0},getPixel:function(a){a*=4;var b=f.imageData.data;return b[a+3]<<24&4278190080|b[a+0]<<16&16711680|b[a+1]<<8&65280|b[a+2]&255},setPixel:function(a,b){var c=4*a,d=f.imageData.data;d[c+0]=(b&16711680)>>>16;d[c+1]=(b&65280)>>>8;d[c+2]=b&255;d[c+3]=(b&4278190080)>>>24},toArray:function(){for(var a=[],b=f.imageData.width*f.imageData.height,c=f.imageData.data,d=0,e= 0;darguments.length);if(a.sourceImg&&null===gb){var g=a.sourceImg;a.__isDirty&&a.updatePixels();h.drawImage(g,0,0,g.width,g.height,f.x,f.y,f.w,f.h)}else g=a.toImageData(),null!==gb&&(gb(g),a.__isDirty=!0),h.drawImage(Ja(g).canvas,0,0,a.width,a.height,f.x,f.y,f.w,f.h)}};B.prototype.image=function(a,b,c,d,e){0=g&&(l=c),0>n&&(n=0),p>=d&&(p=c),n=b.pixels.getPixel(n),m=b.pixels.getPixel(m),p=b.pixels.getPixel(p),l=b.pixels.getPixel(l),h=77*(h>>16&255)+151*(h>>8&255)+28*(h&255),t=77*(m>>16&255)+151*(m>>8&255)+28*(m&255),r=77*(l>>16&255)+151*(l>>8&255)+28*(l&255),q=77*(n>>16&255)+151*(n>>8&255)+28*(n&255),v=77*(p>>16&255)+151*(p>>8&255)+28*(p&255),t=g&&(l=c),0>n&&(n=0),p>=d&&(p=c),n=b.pixels.getPixel(n),m=b.pixels.getPixel(m),p=b.pixels.getPixel(p),l=b.pixels.getPixel(l),h=77*(h>>16&255)+151*(h>>8&255)+28*(h&255),t=77*(m>>16&255)+151*(m>>8&255)+28*(m&255),r=77*(l>>16&255)+151*(l>>8&255)+28*(l&255),q=77*(n>>16&255)+151*(n>>8&255)+28*(n&255),v=77*(p>>16&255)+151*(p>>8&255)+28*(p&255),t>h&& (k=m,h=t),r>h&&(k=l,h=r),q>h&&(k=n,h=q),v>h&&(k=p),e[c++]=k;b.pixels.set(e)};f.filter=function(a,b,c){var e,h,k,l;3===arguments.length?(c.loadPixels(),e=c):(f.loadPixels(),e=f);b===g&&(b=null);if(e.isRemote)throw"Image is loaded remotely. Cannot filter image.";var m=e.pixels.getLength();switch(a){case d.BLUR:var n=b||1,p=e,r,t,q,v,u,y,z,C,D;k=p.pixels.getLength();l=new A(k);m=new A(k);h=new A(k);k=new A(k);var F=0,G,E,H,n=f.floor(3.5*n),B,n=1>n?1:248>n?n:248;if(f.shared.blurRadius!==n){f.shared.blurRadius= n;f.shared.blurKernelSize=1+(f.shared.blurRadius<<1);f.shared.blurKernel=new A(f.shared.blurKernelSize);var I=f.shared.blurKernel,J=f.shared.blurKernelSize;for(B=0;By)u=-y,y=0;else{if(y>=B)break;u=0}for(H=u;H=B);H++)z=4*(y+F),u=J[H],v+=u*K[z+3],r+=u* K[z],t+=u*K[z+1],q+=u*K[z+2],p+=u,y++;z=F+G;k[z]=v/p;l[z]=r/p;m[z]=t/p;h[z]=q/p}F+=B}F=0;C=-C;D=C*B;for(E=0;EC)u=z=-C,y=G;else{if(C>=n)break;u=0;z=C;y=G+D}for(H=u;H=n);H++)u=J[H],v+=u*k[y],r+=u*l[y],t+=u*m[y],q+=u*h[y],p+=u,z++,y+=B;z=4*(G+F);K[z]=r/p;K[z+1]=t/p;K[z+2]=q/p;K[z+3]=v/p}F+=B;D+=B;C++}break;case d.GRAY:if(e.format===d.ALPHA){for(l=0;l>16&255)+151*(h>>8&255)+28*(h&255)>>8,e.pixels.setPixel(l,h&d.ALPHA_MASK|k<<16|k<<8|k);break;case d.INVERT:for(l=0;lh||255>16&255,n=e.pixels.getPixel(l)>>8&255,B= e.pixels.getPixel(l)&255,F=255*(F*h>>8)/k,n=255*(n*h>>8)/k,B=255*(B*h>>8)/k,e.pixels.setPixel(l,4278190080&e.pixels.getPixel(l)|F<<16|n<<8|B);break;case d.OPAQUE:for(l=0;lb||1>16,f.max((e.pixels.getPixel(l)&d.GREEN_MASK)>>8,e.pixels.getPixel(l)& d.BLUE_MASK)),e.pixels.setPixel(l,e.pixels.getPixel(l)&d.ALPHA_MASK|(kc&&(g=c)):(a=c+a-e,g>a&& (g=a));fd&&(h=d)):(b=d+b-f,h>b&&(h=b));return!(0>=g||0>=h)};var pa={};pa[d.BLEND]=f.modes.blend;pa[d.ADD]=f.modes.add;pa[d.SUBTRACT]=f.modes.subtract;pa[d.LIGHTEST]=f.modes.lightest;pa[d.DARKEST]=f.modes.darkest;pa[d.REPLACE]=f.modes.replace;pa[d.DIFFERENCE]=f.modes.difference;pa[d.EXCLUSION]=f.modes.exclusion;pa[d.MULTIPLY]=f.modes.multiply;pa[d.SCREEN]=f.modes.screen;pa[d.OVERLAY]=f.modes.overlay;pa[d.HARD_LIGHT]=f.modes.hard_light;pa[d.SOFT_LIGHT]=f.modes.soft_light;pa[d.DODGE]=f.modes.dodge; pa[d.BURN]=f.modes.burn;f.blit_resize=function(a,b,c,e,g,h,k,l,m,n,p,r,t){0>b&&(b=0);0>c&&(c=0);e>=a.width&&(e=a.width-1);g>=a.height&&(g=a.height-1);e-=b;g-=c;p-=m;r-=n;if(!(0>=p||0>=r||0>=e||0>=g||m>=k||n>=l||b>=a.width||c>=a.height)){e=Math.floor(e/p*d.PRECISIONF);g=Math.floor(g/r*d.PRECISIONF);var q=f.shared;q.srcXOffset=Math.floor(0>m?-m*e:b*d.PRECISIONF);q.srcYOffset=Math.floor(0>n?-n*g:c*d.PRECISIONF);0>m&&(p+=m,m=0);0>n&&(r+=n,n=0);p=Math.min(p,k-m);r=Math.min(r,l-n);b=n*k+m;var v;q.srcBuffer= a.imageData.data;q.iw=a.width;q.iw1=a.width-1;q.ih1=a.height-1;c=pa[t];var u,y,z,C;m=d.ALPHA_MASK;n=d.RED_MASK;var A=d.GREEN_MASK,B=d.BLUE_MASK,F=d.PREC_MAXVAL,D=d.PRECISIONB,G=d.PREC_RED_SHIFT,H=d.PREC_ALPHA_SHIFT,E=q.srcBuffer,I=Math.min;for(t=0;t>D)*q.iw;q.v2=I((q.srcYOffset>>D)+1,q.ih1)*q.iw;for(a=0;a> D,q.ll=q.ifU*q.fracV>>D,q.ur=q.fracU*q.ifV>>D,q.lr=q.fracU*q.fracV>>D,q.u1=q.sX>>D,q.u2=I(q.u1+1,q.iw1),u=4*(q.v1+q.u1),y=4*(q.v1+q.u2),z=4*(q.v2+q.u1),C=4*(q.v2+q.u2),q.cUL=E[u+3]<<24&m|E[u]<<16&n|E[u+1]<<8&A|E[u+2]&B,q.cUR=E[y+3]<<24&m|E[y]<<16&n|E[y+1]<<8&A|E[y+2]&B,q.cLL=E[z+3]<<24&m|E[z]<<16&n|E[z+1]<<8&A|E[z+2]&B,q.cLR=E[C+3]<<24&m|E[C]<<16&n|E[C+1]<<8&A|E[C+2]&B,q.r=q.ul*((q.cUL&n)>>16)+q.ll*((q.cLL&n)>>16)+q.ur*((q.cUR&n)>>16)+q.lr*((q.cLR&n)>>16)<>>D&A,q.b=q.ul*(q.cUL&B)+q.ll*(q.cLL&B)+q.ur*(q.cUR&B)+q.lr*(q.cLR&B)>>>D,q.a=q.ul*((q.cUL&m)>>>24)+q.ll*((q.cLL&m)>>>24)+q.ur*((q.cUR&m)>>>24)+q.lr*((q.cLR&m)>>>24)<>>16,h[l+1]=(v&A)>>>8,h[l+2]=v&B,h[l+3]=(v&m)>>>24,q.sX+=e;b+=k;q.srcYOffset+=g}}};f.loadFont=function(a,b){if(a===g)throw"font name required in loadFont.";if(-1===a.indexOf(".svg"))return b===g&&(b=ba.size),PFont.get(a,b);var c=f.loadGlyphs(a);return{name:a,css:"12px sans-serif", glyph:!0,units_per_em:c.units_per_em,horiz_adv_x:1/c.units_per_em*c.horiz_adv_x,ascent:c.ascent,descent:c.descent,width:function(b){for(var c=0,d=b.length,e=0;e":return a.greater;case "?":return a.question; case "@":return a.at;case "[":return a.bracketleft;case "\\":return a.backslash;case "]":return a.bracketright;case "^":return a.asciicircum;case "`":return a.grave;case "{":return a.braceleft;case "|":return a.bar;case "}":return a.braceright;case "~":return a.asciitilde;default:return a[b]}}catch(c){K.debug(c)}};E.prototype.text$line=function(a,b,c,e,g){e=e=0;if(ba.glyph){e=f.glyphTable[yb];h.save();h.translate(b,c+Na);g!==d.RIGHT&&g!==d.CENTER||e.width(a);b=1/e.units_per_em*Na;h.scale(b,b);b=0; for(c=a.length;b