(function(T,A,e,zc,p){function Ab(c,e){if(c in T)return T[c];return typeof T[e]==="function"?T[e]:function(c){if(c instanceof Array)return c;else if(typeof c==="number"){var h=[];h.length=c;return h}}}function Ub(c){if(c.constructor===String){for(var q=0,J=0;J1&&!/^\[\s*\]$/.test(K[c[1]]))return a;return""+d}else return a}),a=a.replace(/\(int\)([^,\]\)\}\?\:\*\+\-\/\^\|\%\&\~<\>\=]+)/g,function(a,c){var d=q(c);return d.untrim("__int_cast("+d.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,c,d){if(c===d)return a;return d===""?"0"+c:c}),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,c){return"parse"+c.substring(0,1).toUpperCase()+c.substring(1)+'"B'}),a=a.replace(/\bpixels\s*(("C(\d+)")|\.length)?(\s*=(?!=)([^,\]\)\}]+))?/g,function(a,c,d,Ba,ea,ja){return d?(a=K[Ba],ea?"pixels.setPixel"+N("("+a.substring(1,a.length-1)+","+ja+")","B"):"pixels.getPixel"+N("("+a.substring(1,a.length-1)+")","B")):c?"pixels.getLength"+N("()","B"):ea?"pixels.set"+ N("("+ja+")","B"):"pixels.toArray"+N("()","B")}),z;do z=!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|hashCode|toCharArray|printStackTrace|split)\s*"B(\d+)"/g,c);while(z);do z=!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,d);while(z);return a=a.replace(/\bthis(\s*"B\d+")/g, "$$constr$1")}function Yc(a,c){this.baseInterfaceName=a;this.body=c;c.owner=this}function ca(a){var c=RegExp(/\bnew\s*([A-Za-z_$][\w$]*\s*(?:\.\s*[A-Za-z_$][\w$]*)*)\s*"B\d+"\s*"A(\d+)"/).exec(a),a=ka,d="class"+ ++pb;ka=d;var z=c[1]+"$"+d,c=new Yc(z,fb(K[c[2]],z,"","implements "+c[1]));c.classId=d;c.scopeId=a;ba[d]=c;ka=a;return c}function ya(a,c,d){this.name=a;this.params=c;this.body=d}function I(a){a=RegExp(/\b([A-Za-z_$][\w$]*)\s*"B(\d+)"\s*"A(\d+)"/).exec(a);return new ya(a[1]!=="function"?a[1]: null,B(K[a[2]]),Na(K[a[3]]))}function Yb(a){this.members=a}function gb(a){for(var a=a.split(","),c=0;c=0&&a.indexOf(";")<0?(a=a.substring(1,a.length-1).split(":"),new Ra(oa(J(a[0])),za(a[1]))):(a=a.substring(1,a.length-1).split(";"),new hb(oa(J(a[0])),za(a[1]),za(a[2])))}function y(a){a.sort(function(a,c){return c.weight-a.weight})}function qb(a,c, d){this.name=a;this.body=c;this.isStatic=d;c.owner=this}function $(a,c,d){this.name=a;this.body=c;this.isStatic=d;c.owner=this}function ra(a){var c=nb.exec(a);nb.lastIndex=0;var d=c[1].indexOf("static")>=0,z=K[r(c[6])],a=ka,e="class"+ ++pb;ka=e;c=c[2]==="interface"?new qb(c[3],rb(z,c[3],c[4]),d):new $(c[3],fb(z,c[3],c[4],c[5]),d);c.classId=e;c.scopeId=a;ba[e]=c;ka=a;return c}function ta(a,c,d,z){this.name=a;this.params=c;this.body=d;this.isStatic=z}function sb(a){a=X.exec(a);X.lastIndex=0;var c=a[1].indexOf("static")>= 0,d=a[6]!==";"?K[r(a[6])]:"{}";return new ta(a[3],B(K[r(a[4])]),Na(d),c)}function kb(a,c,d){this.definitions=a;this.fieldType=c;this.isStatic=d}function Oa(a){for(var c=$b.exec(a),d=c[1].indexOf("static")>=0,a=a.substring(c[0].length).split(/,\s*/g),z=Ca(c[2]),e=0;e([=]?)/g, Eb);while(da);var K=function(a){for(var c=[],a=a.split(/([\{\[\(\)\]\}])/),d=a[0],e=[],h=1;h=0&&(a=a.substring(0,a.indexOf("=")));return"("+a+" in "+this.container+")"};Ra.iteratorId=0;Ra.prototype.toString=function(){var a=this.initStatement.toString(),c="$it"+Ra.iteratorId++,a=a.replace(/^\s*var\s*/, "").split("=")[0];return"("+("var "+c+" = new $p.ObjectIterator("+this.container+"), "+a+" = void(0)")+"; "+(c+".hasNext() && (("+a+" = "+c+".next()) || true)")+";)"};qb.prototype.toString=function(){return""+this.body};$.prototype.toString=function(){return""+this.body};ta.prototype.toString=function(){var a=s({},this.params.getNames()),c=W;W=function(d){return a.hasOwnProperty(d.name)?d.name:c(d)};var d="function "+this.methodId+this.params+" "+this.body+"\n";W=c;return d};kb.prototype.getNames= function(){for(var a=[],c=0,d=this.definitions.length;c0&&(d+=this.functions.join("\n")+"\n");y(this.innerClasses);B=0;for(Y=this.innerClasses.length;B< Y;++B)v=this.innerClasses[B],v.isStatic?(e+=c+"."+v.name+" = "+v+";\n",d+=a+"."+v.name+" = "+c+"."+v.name+";\n"):d+=a+"."+v.name+" = "+v+";\n";B=0;for(Y=this.fields.length;B0&&(d+=this.cstrs.join("\n")+"\n");d+="function $constr() {\n";v=[];B=0;for(Y=this.cstrs.length;B0&&(d+=v.join(" else ")+" else ");d+="$superCstr();\n}\n";d+="$constr.apply(null, arguments);\n";W=s;return"(function() {\nfunction "+c+"() {\n"+d+"}\n"+e+h+"return "+c+";\n})()"};fb=function(a,c,d,e){var a=a.substring(1,a.length-1),a=v(a),a=x(a,c),h=[],r=[],s=[],B=[],a=a.replace(/"([DEGH])(\d+)"/g,function(a,c,d){c==="D"?h.push(d):c==="E"?r.push(d):c==="H"?B.push(d):s.push(d);return""}),a=a.replace(/^(?:\s*;)+/,"").split(/;(?:\s*;)*/g),J,Y;d!==p&&(J=d.replace(/^\s*extends\s+([A-Za-z_$][\w$]*\b(?:\s*\.\s*[A-Za-z_$][\w$]*\b)*)\s*$/g, "$1"));e!==p&&(Y=e.replace(/^\s*implements\s+(.+?)\s*$/g,"$1").split(/\s*,\s*/g));for(d=0;d0){r=0;for(s=q.length;r0)e.interfaces=h}}})(e);(function(){var a=[],c={},d,e;for(d in ba)if(ba.hasOwnProperty(d)&&(e=ba[d],!e.inScope&&!e.derived))a.push(d),c[d]=!0,e.weight=0;for(;a.length>0;){d=a.shift();e=ba[d]; if(e.scopeId&&!c[e.scopeId])a.push(e.scopeId),c[e.scopeId]=!0,ba[e.scopeId].weight=e.weight+1;if(e.base&&!c[e.base.classId])a.push(e.base.classId),c[e.base.classId]=!0,e.base.weight=e.weight+1;if(e.interfaces){var h;d=0;for(h=e.interfaces.length;d0&&typeof arguments[0]!=="number"?p=arguments[0]:(p=[],p.length=0|arguments[0]);this.get=function(c){return p[c]};this.contains=function(c){return this.indexOf(c)>-1};this.indexOf= function(c){for(var e=0,h=p.length;e=0&&c<=p.length)p.splice(c,0,arguments[1]);else throw c+" is not a valid index";else throw typeof c+" is not a number";}else throw"Please use the proper number of parameters.";};this.addAll=function(c,e){var h;if(typeof c==="number"){if(c<0||c>p.length)throw"Index out of bounds for addAll: "+ c+" greater or equal than "+p.length;for(h=new Ib(e);h.hasNext();)p.splice(c++,0,h.next())}else for(h=new Ib(c);h.hasNext();)p.push(h.next())};this.set=function(){if(arguments.length===2){var c=arguments[0];if(typeof c==="number")if(c>=0&&c-1)return p.splice(c,1),!0;return!1}};this.isEmpty=function(){return!p.length};this.clone=function(){return new e(p.slice(0))};this.toArray=function(){return p.slice(0)};this.iterator=function(){return new c(p)}}return e}(),Fc=function(){function c(){function e(c){c=Ub(c)%x.length;return c<0?x.length+c:c}function w(){if(!(A<=v*x.length)){for(var c=[],h=0;h=x.length)s=!0;else if(x[r]===p||q>=x[r].length)q=-1,++r;else break}var r=0,q=-1,s=!1;this.hasNext=function(){return!s};this.next=function(){var e=c(x[r][q]);h();return e};this.remove=function(){e(this.next());--q};h()}function C(c,e,h){this.clear=function(){I.clear()};this.contains=function(c){return e(c)};this.containsAll=function(c){for(c=c.iterator();c.hasNext();)if(!this.contains(c.next()))return!1; return!0};this.isEmpty=function(){return I.isEmpty()};this.iterator=function(){return new s(c,h)};this.remove=function(c){if(this.contains(c))return h(c),!0;return!1};this.removeAll=function(c){for(c=c.iterator();c.hasNext();){var e=c.next();this.contains(e)&&h(e)}return!0};this.retainAll=function(c){for(var e=this.iterator(),r=[];e.hasNext();){var q=e.next();c.contains(q)||r.push(q)}for(c=0;c0};this.size=function(){return I.size()};this.toArray=function(){for(var c= [],e=this.iterator();e.hasNext();)c.push(e.next());return c}}function r(c){this._isIn=function(e){return e===I&&c.removed===p};this.equals=function(e){return ra(c.key,e.getKey())};this.getKey=function(){return c.key};this.getValue=function(){return c.value};this.hashCode=function(){return Ub(c.key)};this.setValue=function(e){var h=c.value;c.value=e;return h}}if(arguments.length===1&&arguments[0].constructor===c)return arguments[0].clone();var N=arguments.length>0?arguments[0]:16,v=arguments.length> 1?arguments[1]:0.75,x=[];x.length=N;var A=0,I=this;this.clear=function(){A=0;x=[];x.length=N};this.clone=function(){var e=new c;e.putAll(this);return e};this.containsKey=function(c){var h=e(c),h=x[h];if(h===p)return!1;for(var r=0;r1?r.splice(s,1):x[h]=p,c;return null};this.size=function(){return A};this.values=function(){for(var c=[],e=this.entrySet().iterator();e.hasNext();){var h= e.next();c.push(h.getValue())}return c}}return c}(),ia=function(){function c(e,h,q){this.x=e||0;this.y=h||0;this.z=q||0}function q(c){return function(e,h){var q=e.get();q[c](h);return q}}function p(c){return function(e,h){return e[c](h)}}var s="dist dot cross".split(" "),w=s.length;c.angleBetween=function(c,h){return e.acos(c.dot(h)/(c.mag()*h.mag()))};for(c.prototype={set:function(c,e,h){arguments.length===1?this.set(c.x||c[0],c.y||c[1],c.z||c[2]):(this.x=c,this.y=e,this.z=h)},get:function(){return new c(this.x, this.y,this.z)},mag:function(){return e.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},add:function(c,e,h){arguments.length===3?(this.x+=c,this.y+=e,this.z+=h):arguments.length===1&&(this.x+=c.x,this.y+=c.y,this.z+=c.z)},sub:function(c,e,h){arguments.length===3?(this.x-=c,this.y-=e,this.z-=h):arguments.length===1&&(this.x-=c.x,this.y-=c.y,this.z-=c.z)},mult:function(c){typeof c==="number"?(this.x*=c,this.y*=c,this.z*=c):typeof c==="object"&&(this.x*=c.x,this.y*=c.y,this.z*=c.z)},div:function(c){typeof c=== "number"?(this.x/=c,this.y/=c,this.z/=c):typeof c==="object"&&(this.x/=c.x,this.y/=c.y,this.z/=c.z)},dist:function(c){var h=this.x-c.x,q=this.y-c.y,c=this.z-c.z;return e.sqrt(h*h+q*q+c*c)},dot:function(c,e,h){if(arguments.length===3)return this.x*c+this.y*e+this.z*h;else if(arguments.length===1)return this.x*c.x+this.y*c.y+this.z*c.z},cross:function(e){return new c(this.y*e.z-e.y*this.z,this.z*e.x-e.z*this.x,this.x*e.y-e.x*this.y)},normalize:function(){var c=this.mag();c>0&&this.div(c)},limit:function(c){this.mag()> c&&(this.normalize(),this.mult(c))},heading2D:function(){return-e.atan2(-this.y,this.x)},toString:function(){return"["+this.x+", "+this.y+", "+this.z+"]"},array:function(){return[this.x,this.y,this.z]}};w--;)c[s[w]]=p(s[w]);for(w in c.prototype)c.prototype.hasOwnProperty(w)&&!c.hasOwnProperty(w)&&(c[w]=q(w));return c}();Vb.prototype=c;var sa=new Vb;sa.ArrayList=Ec;sa.HashMap=Fc;sa.PVector=ia;sa.ObjectIterator=Ib;var mc={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"},Oa=[],nc={},w=this.Processing=function(h,q){function J(b){w.debug("Unimplemented - "+b)}function s(b,l,a,c){var g=Pa.locations[b];g===p&&(g=d.getUniformLocation(l,a),Pa.locations[b]=g);g!==-1&&(c.length===4?d.uniform4fv(g,c):c.length===3?d.uniform3fv(g,c):c.length===2?d.uniform2fv(g,c):d.uniform1f(g,c))}function C(b,l,a,c){var g=Pa.locations[b]; g===p&&(g=d.getUniformLocation(l,a),Pa.locations[b]=g);g!==-1&&(c.length===4?d.uniform4iv(g,c):c.length===3?d.uniform3iv(g,c):c.length===2?d.uniform2iv(g,c):d.uniform1i(g,c))}function r(b,l,a,c,g){var P=Pa.attributes[b];P===p&&(P=d.getAttribLocation(l,a),Pa.attributes[b]=P);P!==-1&&(d.bindBuffer(d.ARRAY_BUFFER,g),d.vertexAttribPointer(P,c,d.FLOAT,!1,0,0),d.enableVertexAttribArray(P))}function N(b,l,a){var c=Pa.attributes[b];c===p&&(c=d.getAttribLocation(l,a),Pa.attributes[b]=c);c!==-1&&d.disableVertexAttribArray(c)} function v(b,l,a,c,g){var P=Pa.locations[b];P===p&&(P=d.getUniformLocation(l,a),Pa.locations[b]=P);P!==-1&&(g.length===16?d.uniformMatrix4fv(P,c,g):g.length===9?d.uniformMatrix3fv(P,c,g):d.uniformMatrix2fv(P,c,g))}function x(b,l,k,f){Ma===c.HSB?(k=a.color.toRGB(b,l,k),b=k[0],l=k[1],k=k[2]):(b=e.round(255*(b/ja)),l=e.round(255*(l/z)),k=e.round(255*(k/xa)));f=e.round(255*(f/ea));return(f>255?255:f)<<24&c.ALPHA_MASK|(b>255?255:b)<<16&c.RED_MASK|(l>255?255:l)<<8&c.GREEN_MASK|(k>255?255:k)&c.BLUE_MASK} function Xb(){d.restore();Ia=Ta=!0}function Xc(b,l){var a=1;a<<=l-1;for(var c="",g=0;g>>=1;return c}function B(b,l,a,c,g,d){l=b<0?a:l;a=g===0;g=g===p||g<0?0:g;b=e.abs(b);if(a){g=1;for(b*=10;e.abs(e.round(b)-b)>1.0E-6&&g<7;)++g,b*=10}else g!==0&&(b*=e.pow(10,g));a=b*2;e.floor(b)===b?a=b:e.floor(a)===a?(b=e.floor(b),a=b+b%2):a=e.round(b);b="";for(c+=g;c>0||a>0;)c--,b=""+a%10+b,a=e.floor(a/10);if(d!==p)for(c=b.length-3-g;c>0;)b=b.substring(0,c)+d+b.substring(c),c-=3;return g> 0?l+b.substring(0,b.length-g)+"."+b.substring(b.length-g,b.length):l+b}function Y(b,l,a,c,g,d){if(b instanceof Array){for(var i=[],j=0,n=b.length;j2147483647&&(b-=4294967296);return b}function ca(b){return Array.prototype.slice.call(b,1)}function ya(b){if(typeof b==="number")return b!==0;else if(typeof b==="boolean")return b;else if(typeof b==="string")return b.toLowerCase()==="true";else if(b instanceof Aa)return b.code===49||b.code===84||b.code===116}function ta(b){if(typeof b==="number")return b;else if(typeof b==="boolean")return b?1:0;else if(typeof b==="string")return parseFloat(b);else if(b instanceof Aa)return b.code}function Yb(b,l){if(typeof b==="number")return b&4294967295;else if(typeof b==="boolean")return b?1:0;else if(typeof b==="string")return parseInt(b,l||10)&4294967295;else if(b instanceof Aa)return b.code}function gb(b,l){var a=b||362436069,c=l||521288629,g=function(){a=36969* (a&65535)+(a>>>16)&4294967295;c=18E3*(c&65535)+(c>>>16)&4294967295;return((a&65535)<<16|c&65535)&4294967295};this.nextDouble=function(){var b=g()/4294967296;return b<0?1+b:b};this.nextInt=g}function Ad(b){function l(b,l,a,k){b&=15;var c=b<8?l:a,l=b<4?a:b===12||b===14?l:k;return((b&1)===0?c:-c)+((b&2)===0?l:-l)}function a(b,l,k){l=(b&1)===0?l:k;return(b&2)===0?-l:l}function c(b,l,a){return l+b*(a-l)}var b=b!==p?new gb(b):gb.createRandomized(),g,d,i=new Zc(512);for(g=0;g<256;++g)i[g]=g;for(g=0;g<256;++g){var j= i[d=b.nextInt()&255];i[d]=i[g];i[g]=j}for(g=0;g<256;++g)i[g+256]=i[g];this.noise3d=function(b,a,k){var g=e.floor(b)&255,d=e.floor(a)&255,P=e.floor(k)&255;b-=e.floor(b);a-=e.floor(a);k-=e.floor(k);var j=(3-2*b)*b*b,h=(3-2*a)*a*a,m=i[g]+d,q=i[m]+P,m=i[m+1]+P,d=i[g+1]+d,g=i[d]+P,P=i[d+1]+P;return c((3-2*k)*k*k,c(h,c(j,l(i[q],b,a,k),l(i[g],b-1,a,k)),c(j,l(i[m],b,a-1,k),l(i[P],b-1,a-1,k))),c(h,c(j,l(i[q+1],b,a,k-1),l(i[g+1],b-1,a,k-1)),c(j,l(i[m+1],b,a-1,k-1),l(i[P+1],b-1,a-1,k-1))))};this.noise2d=function(b, l){var g=e.floor(b)&255,d=e.floor(l)&255;b-=e.floor(b);l-=e.floor(l);var P=(3-2*b)*b*b,j=i[g]+d,g=i[g+1]+d;return c((3-2*l)*l*l,c(P,a(i[j],b,l),a(i[g],b-1,l)),c(P,a(i[j+1],b,l-1),a(i[g+1],b-1,l-1)))};this.noise1d=function(b){var l=e.floor(b)&255;b-=e.floor(b);return c((3-2*b)*b*b,(i[l]&1)===0?-b:b,(i[l+1]&1)===0?-(b-1):b-1)}}function Z(){if(U){if(Ia)d.fillStyle=a.color.toString(Ha),Ia=!1;d.fill()}}function la(){if(O){if(Ta)d.strokeStyle=a.color.toString(ma),Ta=!1;d.stroke()}}function Bd(b,l,k){k= 0|k*((l&c.ALPHA_MASK)>>>24);return e.min(((b&c.ALPHA_MASK)>>>24)+k,255)<<24|a.mix(b&c.RED_MASK,l&c.RED_MASK,k)&c.RED_MASK|a.mix(b&c.GREEN_MASK,l&c.GREEN_MASK,k)&c.GREEN_MASK|a.mix(b&c.BLUE_MASK,l&c.BLUE_MASK,k)}function ga(b,l,a){var c=$c.shift();if(c===p)c={},c.canvas=A.createElement("canvas"),c.context=c.canvas.getContext("2d");$c.push(c);var g=c.canvas,d=c.context,l=l||b.width,a=a||b.height;g.width=l;g.height=a;b?"data"in b?d.putImageData(b,0,0):(d.clearRect(0,0,l,a),d.drawImage(b,0,0,l,a)):d.clearRect(0, 0,l,a);return c}function Ca(){ec&&(d=ad,ec=!1,a.updatePixels())}function Da(){function b(b,l){b[l]=function(){Ca();d[l].apply(d,arguments)}}function l(b,l){a.defineProperty(b,l,{get:function(){Ca();return d[l]},set:function(b){Ca();d[l]=b}})}for(var k in d)typeof d[k]==="function"?b(this,k):l(this,k)}function Ga(b){this.name="sans-serif";if(b!==p)switch(b){case "sans-serif":case "serif":case "monospace":case "fantasy":case "cursive":this.name=b;break;default:this.name='"'+b+'", sans-serif'}this.origName= b}function oa(b){return b instanceof String?b:typeof b==="number"?b===(0|b)?b.toString():a.nf(b,0,3):b===null||b===p?"":b.toString()}function hb(b,l,a,c){this.canvas=A.createElement("canvas");this.canvas.setAttribute("width",l+"px");this.canvas.setAttribute("height",l+"px");this.ctx=this.canvas.getContext("2d");this.ctx.font=l+"pt "+b;this.ctx.fillStyle="black";this.ctx.fillRect(0,0,l,l);this.ctx.fillStyle="white";this.ctx.fillText(c,0,a);this.imageData=this.ctx.getImageData(0,0,l,l);this.get=function(b, l){return this.imageData.data[l*this.imageData.width*4+b*4]}}function ib(b,l,a,f){var g;b.indexOf("\n")<0?(b=[b],g=1):(b=b.split(/\r?\n/g),g=b.length);var d;d=Jb===c.TOP?(1-oc)*eb:Jb===c.CENTER?(1-oc-g/2)*eb:Jb===c.BOTTOM?(1-oc-g)*eb:0;for(var i=0;ig)){var i=-1,j=0,e=0,h=0;d.font=S+"px "+fa.name;for(var m=[],q=0,o=b.length;q0)i=q;else return;p==="\n"?(m.push({text:b.substring(j,q),width:e,offset:h}),j=q+1):(m.push({text:b.substring(j,i),width:e,offset:h}),j=i+1);h+=eb;e=0;q=j-1}}jg)break;ha.text$line(h.text,l+b,a+h.offset+f+i,P,Kb)}}}function jb(b){ha= b==="3D"?new L:b==="2D"?new G:new F;for(var l in F.prototype)F.prototype.hasOwnProperty(l)&&l.indexOf("$")<0&&(a[l]=ha[l]);ha.$init()}function y(b){return function(){jb("2D");return ha[b].apply(this,arguments)}}function qb(b,l){function k(k){a.defineProperty(b,k,{get:function(){return l[k]},set:function(b){l[k]=b},enumerable:!0})}var c=[],g;for(g in l)typeof l[g]==="function"?b.hasOwnProperty(g)||(b[g]=l[g]):g.charAt(0)!=="$"&&!(g in b)&&c.push(g);for(;c.length>0;)k(c.shift())}function $(b,l,a){b.addEventListener? b.addEventListener(l,a,!1):b.attachEvent("on"+l,a);$a.push([b,l,a])}function Ab(b,l,a){b.removeEventListener?b.removeEventListener(l,a,!1):b.detachEvent&&b.detachEvent("on"+l,a)}function Hb(b){var l=b,k=0,c=0;a.pmouseX=a.mouseX;a.pmouseY=a.mouseY;if(l.offsetParent){do k+=l.offsetLeft,c+=l.offsetTop;while(l=l.offsetParent)}l=b;do k-=l.scrollLeft||0,c-=l.scrollTop||0;while(l=l.parentNode);k+=bd;c+=cd;k+=dd;c+=ed;k+=T.pageXOffset;c+=T.pageYOffset;return{X:k,Y:c}}function sb(b,l){var k=Hb(b,l);a.mouseX= l.pageX-k.X;a.mouseY=l.pageY-k.Y}function kb(b){var l=Hb(b.changedTouches[0].target,b.changedTouches[0]),a;for(a=0;a 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 = 0.0; } else { powerfactor = pow( nDotHV, shininess ); } spec += specular * powerfactor * attenuation; col += light.color * nDotVP * attenuation;}void main(void) { vec3 finalAmbient = vec3( 0.0, 0.0, 0.0 ); vec3 finalDiffuse = vec3( 0.0, 0.0, 0.0 ); vec3 finalSpecular = vec3( 0.0, 0.0, 0.0 ); vec4 col = color; if(color[0] == -1.0){ col = aColor; } vec3 norm = normalize(vec3( normalTransform * vec4( Normal, 0.0 ) )); vec4 ecPos4 = view * model * vec4(Vertex,1.0); vec3 ecPos = (vec3(ecPos4))/ecPos4.w; if( lightCount == 0 ) { frontColor = col + vec4(mat_specular,1.0); } else { for( int i = 0; i < 8; i++ ) { Light l = getLight(i); if( i >= lightCount ){ 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( usingMat == false ) { frontColor = vec4( vec3(col) * finalAmbient + vec3(col) * finalDiffuse + vec3(col) * finalSpecular, col[3] ); } else{ frontColor = vec4( mat_emissive + (vec3(col) * mat_ambient * finalAmbient) + (vec3(col) * finalDiffuse) + (mat_specular * finalSpecular), col[3] ); } } vTexture.xy = aTexture.xy; gl_Position = projection * view * model * vec4( Vertex, 1.0 );}", rd=function(b,l,a,c){return{x:b,y:l,w:a,h:c}},vc=rd,Fc=function(b,l,a,c,g){return{x:b,y:l,w:g?a:a-b,h:g?c:c-l}},Ed=function(b,l,a,c){return{x:b-a/2,y:l-c/2,w:a,h:c}},Vc=function(b,l,a){var c=b.createShader(b.VERTEX_SHADER);b.shaderSource(c,l);b.compileShader(c);if(!b.getShaderParameter(c,b.COMPILE_STATUS))throw b.getShaderInfoLog(c);l=b.createShader(b.FRAGMENT_SHADER);b.shaderSource(l,a);b.compileShader(l);if(!b.getShaderParameter(l,b.COMPILE_STATUS))throw b.getShaderInfoLog(l);a=b.createProgram(); b.attachShader(a,c);b.attachShader(a,l);b.linkProgram(a);if(!b.getProgramParameter(a,b.LINK_STATUS))throw"Error linking shaders.";return a},H=function(){},G=function(){},L=function(){},F=function(){};G.prototype=new H;G.prototype.constructor=G;L.prototype=new H;L.prototype.constructor=L;F.prototype=new H;F.prototype.constructor=F;H.prototype.a3DOnlyFunction=function(){};var Wc={},Aa=a.Character=function(b){this.code=typeof b==="string"&&b.length===1?b.charCodeAt(0):typeof b==="number"?b:b instanceof Aa?b:NaN;return Wc[this.code]===p?Wc[this.code]=this:Wc[this.code]};Aa.prototype.toString=function(){return String.fromCharCode(this.code)};Aa.prototype.valueOf=function(){return this.code};var ic=a.PShape=function(b){this.family=b||c.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};ic.prototype={isVisible:function(){return this.visible},setVisible:function(b){this.visible= b},disableStyle:function(){this.style=!1;for(var b=0,l=this.children.length;b0){l=0;for(a=this.nameTable.length;l, it's <"+this.element.getName()+">";}else if(arguments.length===2)if(typeof arguments[1]==="string"){if(arguments[1].indexOf(".svg")>-1)this.element=new a.XMLElement(null,arguments[1]),this.vertexCodes=[],this.vertices=[],this.opacity=1,this.stroke=!1,this.strokeColor=c.ALPHA_MASK,this.strokeWeight=1,this.strokeCap=c.SQUARE,this.strokeJoin=c.MITER,this.strokeName= this.strokeGradientPaint=this.strokeGradient="",this.strokeOpacity=1,this.fill=!0,this.fillColor=c.ALPHA_MASK,this.fillGradientPaint=this.fillGradient=null,this.fillOpacity=1}else if(arguments[0])this.element=arguments[1],this.vertexCodes=arguments[0].vertexCodes.slice(),this.vertices=arguments[0].vertices.slice(),this.stroke=arguments[0].stroke,this.strokeColor=arguments[0].strokeColor,this.strokeWeight=arguments[0].strokeWeight,this.strokeCap=arguments[0].strokeCap,this.strokeJoin=arguments[0].strokeJoin, this.strokeGradient=arguments[0].strokeGradient,this.strokeGradientPaint=arguments[0].strokeGradientPaint,this.strokeName=arguments[0].strokeName,this.fill=arguments[0].fill,this.fillColor=arguments[0].fillColor,this.fillGradient=arguments[0].fillGradient,this.fillGradientPaint=arguments[0].fillGradientPaint,this.fillName=arguments[0].fillName,this.strokeOpacity=arguments[0].strokeOpacity,this.fillOpacity=arguments[0].fillOpacity,this.opacity=arguments[0].opacity;this.name=this.element.getStringAttribute("id"); this.visible=this.element.getStringAttribute("display","inline")!=="none";var b=this.element.getAttribute("transform");if(b)this.matrix=this.parseMatrix(b);b=this.element.getStringAttribute("viewBox");if(b!==null)b=b.split(" "),this.width=b[2],this.height=b[3];var b=this.element.getStringAttribute("width"),l=this.element.getStringAttribute("height");if(b!==null)this.width=this.parseUnitSize(b),this.height=this.parseUnitSize(l);else if(this.width===0||this.height===0)throw this.height=this.width=1, "The width and/or height is not readable in the tag of this file.";this.parseColors(this.element);this.parseChildren(this.element)};R.prototype=new ic;R.prototype.parseMatrix=function(){function b(b){b.replace(/\((.*?)\)/,function(){return function(b,l){l.replace(/,+/g," ").split(/\s+/)}}())}return function(l){this.checkMatrix(2);var c=[];l.replace(/\s*(\w+)\((.*?)\)/g,function(b){c.push(a.trim(b))});if(c.length===0)return null;for(var l=0,f=c.length;l=65&&m<=90||m>=97&&m<=122){t=h;h++;if(h=65&&m<=90||m>=97&&m<=100||m>=102&&m<=122)&&p===!1;)m===32?q!== ""&&(o.push(parseFloat(q)),q=""):m===45?b[h-1].valueOf()===101?q+=b[h].toString():(q!==""&&o.push(parseFloat(q)),q=b[h].toString()):q+=b[h].toString(),h++,h===b.length?p=!0:m=b[h].valueOf()}q!==""&&(o.push(parseFloat(q)),q="");s=b[t];m=s.valueOf();if(m===77){if(o.length>=2&&o.length%2===0&&(l=o[0],k=o[1],this.parsePathMoveto(l,k),o.length>2)){t=2;for(m=o.length;t=2&&o.length%2===0&&(this.parsePathMoveto(l,k),o.length> 2)){t=2;for(m=o.length;t=2&&o.length%2===0){t=0;for(m=o.length;t=2&&o.length%2===0){t=0;for(m=o.length;t=6&&o.length%6===0){t=0;for(m=o.length;t=6&&o.length%6===0){t=0;for(m=o.length;t= 4&&o.length%4===0){t=0;for(m=o.length;t=4&&o.length%4===0){t= 0;for(m=o.length;t=4&&o.length%4===0){t=0;for(m=o.length;t< m;t+=4)f=o[t],g=o[t+1],j=o[t+2],e=o[t+3],this.parsePathQuadto(l,k,f,g,j,e),l=j,k=e}}else if(m===113){if(o.length>=4&&o.length%4===0){t=0;for(m=o.length;t=2&&o.length%2===0){t=0;for(m=o.length;t=2&&o.length%2===0){t=0;for(m=o.length;t0)this.parsePathCode(c.BEZIER_VERTEX),this.parsePathVertex(b+(k-b)*2/3,a+(f-a)*2/3),this.parsePathVertex(g+(k-g)*2/3,d+(f-d)*2/3),this.parsePathVertex(g,d);else throw"Path must start with M/m";};R.prototype.parsePathCurveto=function(b,a,k,f,g,d){if(this.vertices.length>0)this.parsePathCode(c.BEZIER_VERTEX),this.parsePathVertex(b,a),this.parsePathVertex(k,f),this.parsePathVertex(g, d);else throw"Path must start with M/m";};R.prototype.parsePathLineto=function(b,a){if(this.vertices.length>0)this.parsePathCode(c.VERTEX),this.parsePathVertex(b,a),this.vertices[this.vertices.length-1].moveTo=!1;else throw"Path must start with M/m";};R.prototype.parsePathMoveto=function(b,a){this.vertices.length>0&&this.parsePathCode(c.BREAK);this.parsePathCode(c.VERTEX);this.parsePathVertex(b,a);this.vertices[this.vertices.length-1].moveTo=!0};R.prototype.parsePathVertex=function(b,a){var c=[]; c[0]=b;c[1]=a;this.vertices.push(c)};R.prototype.parsePathCode=function(b){this.vertexCodes.push(b)};R.prototype.parsePoly=function(b){this.family=c.PATH;this.close=b;b=a.trim(this.element.getStringAttribute("points").replace(/[,\s]+/g," "));if(b!==null)if(b=b.split(" "),b.length%2===0)for(var l=0,k=b.length;l=1&&arguments[0]!==null&&b.isVisible()&&(a.pushMatrix(),hc===c.CENTER?arguments.length===5?(a.translate(l-f/2,k-g/2),a.scale(f/b.getWidth(),g/b.getHeight())):arguments.length===3?a.translate(l-b.getWidth()/2,-b.getHeight()/2):a.translate(-b.getWidth()/2,-b.getHeight()/2):hc===c.CORNER?arguments.length===5?(a.translate(l,k),a.scale(f/b.getWidth(), g/b.getHeight())):arguments.length===3&&a.translate(l,k):hc===c.CORNERS&&(arguments.length===5?(f-=l,g-=k,a.translate(l,k),a.scale(f/b.getWidth(),g/b.getHeight())):arguments.length===3&&a.translate(l,k)),b.draw(),(arguments.length===1&&hc===c.CENTER||arguments.length>1)&&a.popMatrix())};a.shapeMode=function(b){hc=b};a.loadShape=function(b){if(arguments.length===1&&b.indexOf(".svg")>-1)return new R(null,b);return null};var wc=function(b,a,c,f,g){this.fullName=b||"";this.name=a||"";this.namespace=c|| "";this.value=f;this.type=g};wc.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(b){this.value=b}};var mb=a.XMLElement=function(){this.attributes=[];this.children=[];this.name=this.fullName=null;this.namespace="";this.parent=this.content=null;this.systemID=this.lineNr="";this.type="ELEMENT";if(arguments.length===4){this.fullName= arguments[0]||"";if(arguments[1])this.name=arguments[1];else{var b=this.fullName.indexOf(":");this.name=b>=0?this.fullName.substring(b+1):this.fullName}this.namespace=arguments[1];this.lineNr=arguments[3];this.systemID=arguments[2]}else arguments.length===2&&arguments[1].indexOf(".")>-1?this.parse(arguments[arguments.length-1]):arguments.length===1&&typeof arguments[0]==="string"&&this.parse(arguments[0])};mb.prototype={parse:function(b){var a;try{if(b.indexOf(".xml")>-1||b.indexOf(".svg")>-1)b=Dc(b); a=(new DOMParser).parseFromString(b,"text/xml");var c=a.documentElement;if(c)this.parseChildrenRecursive(null,c);else throw"Error loading document";return this}catch(f){throw f;}},parseChildrenRecursive:function(b,a){var c,f,g,d;b?(c=new mb(a.localName,a.nodeName,"",""),c.parent=b):(this.fullName=a.localName,this.name=a.nodeName,c=this);if(a.nodeType===3&&a.textContent!=="")return this.createPCDataElement(a.textContent);g=0;for(d=a.attributes.length;g0){a=0;for(c=this.children.length;a0},addChild:function(b){if(b!==null)b.parent=this,this.children.push(b)},insertChild:function(b,a){if(b){if(b.getLocalName()===null&&!this.hasChildren()){var c=this.children[this.children.length-1];if(c.getLocalName()===null){c.setContent(c.getContent()+b.getContent());return}}b.parent= this;this.children.splice(a,0,b)}},getChild:function(b){if(typeof b==="number")return this.children[b];else if(b.indexOf("/")!==-1)this.getChildRecursive(b.split("/"),0);else{for(var a,c,f=0,g=this.getChildCount();fb&&this.children.splice(b,1)},findAttribute:function(b,a){this.namespace=a||"";for(var c=0,f=this.attributes.length;c0&&w.debug("Tried to set content for XMLElement with children"); this.content=b},setName:function(){if(arguments.length===1)this.name=arguments[0],this.fullName=arguments[0],this.namespace=null;else{var b=arguments[0].indexOf(":");this.name=arguments[1]===null||b<0?arguments[0]:arguments[0].substring(b+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(this.type==="TEXT")return this.content; var b=(this.namespace!==""&&this.namespace!==this.name?this.namespace+":":"")+this.name,a="<"+b,c;for(c=0;c":">"+this.content+"";else{a+=">";for(c=0;c"}return a}};mb.parse=function(b){var a=new mb;a.parse(b);return a};var sd=function(b){for(var a=0,c=0;cc.MIN_INT){var a=this.elements[0],k=this.elements[1],f=this.elements[2],g=this.elements[3],d=this.elements[4],i=this.elements[5];this.elements[0]=d/b;this.elements[3]=-g/b;this.elements[1]=-k/b;this.elements[4]= a/b;this.elements[2]=(k*i-d*f)/b;this.elements[5]=(g*f-a*i)/b;return!0}return!1},scale:function(b,a){b&&!a&&(a=b);b&&a&&(this.elements[0]*=b,this.elements[1]*=a,this.elements[3]*=b,this.elements[4]*=a)},invScale:function(b,a){b&&!a&&(a=b);this.scale(1/b,1/a)},apply:function(){var b;arguments.length===1&&arguments[0]instanceof ab?b=arguments[0].array():arguments.length===6?b=Array.prototype.slice.call(arguments):arguments.length===1&&arguments[0]instanceof Array&&(b=arguments[0]);for(var a=[0,0,this.elements[2], 0,0,this.elements[5]],c=0,f=0;f<2;f++)for(var g=0;g<3;g++,c++)a[c]+=this.elements[f*3+0]*b[g+0]+this.elements[f*3+1]*b[g+3];this.elements=a.slice()},preApply:function(){var b;arguments.length===1&&arguments[0]instanceof ab?b=arguments[0].array():arguments.length===6?b=Array.prototype.slice.call(arguments):arguments.length===1&&arguments[0]instanceof Array&&(b=arguments[0]);var a=[0,0,b[2],0,0,b[5]];a[2]=b[2]+this.elements[2]*b[0]+this.elements[5]*b[1];a[5]=b[5]+this.elements[2]*b[3]+this.elements[5]* b[4];a[0]=this.elements[0]*b[0]+this.elements[3]*b[1];a[3]=this.elements[0]*b[3]+this.elements[3]*b[4];a[1]=this.elements[1]*b[0]+this.elements[4]*b[1];a[4]=this.elements[1]*b[3]+this.elements[4]*b[4];this.elements=a.slice()},rotate:function(b){var a=e.cos(b),b=e.sin(b),c=this.elements[0],f=this.elements[1];this.elements[0]=a*c+b*f;this.elements[1]=-b*c+a*f;c=this.elements[3];f=this.elements[4];this.elements[3]=a*c+b*f;this.elements[4]=-b*c+a*f},rotateZ:function(b){this.rotate(b)},invRotateZ:function(b){this.rotateZ(b- e.PI)},print:function(){var b=sd(this.elements),b=""+a.nfs(this.elements[0],b,4)+" "+a.nfs(this.elements[1],b,4)+" "+a.nfs(this.elements[2],b,4)+"\n"+a.nfs(this.elements[3],b,4)+" "+a.nfs(this.elements[4],b,4)+" "+a.nfs(this.elements[5],b,4)+"\n\n";a.println(b)}};var E=a.PMatrix3D=function(){this.reset()};E.prototype={set:function(){if(arguments.length===16)this.elements=Array.prototype.slice.call(arguments);else if(arguments.length===1&&arguments[0]instanceof E)this.elements=arguments[0].array(); else if(arguments.length===1&&arguments[0]instanceof Array)this.elements=arguments[0].slice()},get:function(){var b=new E;b.set(this.elements);return b},reset:function(){this.set([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])},array:function(){return this.elements.slice()},translate:function(b,a,c){c===p&&(c=0);this.elements[3]+=b*this.elements[0]+a*this.elements[1]+c*this.elements[2];this.elements[7]+=b*this.elements[4]+a*this.elements[5]+c*this.elements[6];this.elements[11]+=b*this.elements[8]+a*this.elements[9]+ c*this.elements[10];this.elements[15]+=b*this.elements[12]+a*this.elements[13]+c*this.elements[14]},transpose:function(){var b=this.elements.slice();this.elements[0]=b[0];this.elements[1]=b[4];this.elements[2]=b[8];this.elements[3]=b[12];this.elements[4]=b[1];this.elements[5]=b[5];this.elements[6]=b[9];this.elements[7]=b[13];this.elements[8]=b[2];this.elements[9]=b[6];this.elements[10]=b[10];this.elements[11]=b[14];this.elements[12]=b[3];this.elements[13]=b[7];this.elements[14]=b[11];this.elements[15]= b[15]},mult:function(b,a){var c,f,g,d;if(b instanceof ia)c=b.x,f=b.y,g=b.z,d=1,a||(a=new ia);else if(b instanceof Array&&(c=b[0],f=b[1],g=b[2],d=b[3]||1,!a||a.length!==3&&a.length!==4))a=[0,0,0];a instanceof Array&&(a.length===3?(a[0]=this.elements[0]*c+this.elements[1]*f+this.elements[2]*g+this.elements[3],a[1]=this.elements[4]*c+this.elements[5]*f+this.elements[6]*g+this.elements[7],a[2]=this.elements[8]*c+this.elements[9]*f+this.elements[10]*g+this.elements[11]):a.length===4&&(a[0]=this.elements[0]* c+this.elements[1]*f+this.elements[2]*g+this.elements[3]*d,a[1]=this.elements[4]*c+this.elements[5]*f+this.elements[6]*g+this.elements[7]*d,a[2]=this.elements[8]*c+this.elements[9]*f+this.elements[10]*g+this.elements[11]*d,a[3]=this.elements[12]*c+this.elements[13]*f+this.elements[14]*g+this.elements[15]*d));if(a instanceof ia)a.x=this.elements[0]*c+this.elements[1]*f+this.elements[2]*g+this.elements[3],a.y=this.elements[4]*c+this.elements[5]*f+this.elements[6]*g+this.elements[7],a.z=this.elements[8]* c+this.elements[9]*f+this.elements[10]*g+this.elements[11];return a},preApply:function(){var b;arguments.length===1&&arguments[0]instanceof E?b=arguments[0].array():arguments.length===16?b=Array.prototype.slice.call(arguments):arguments.length===1&&arguments[0]instanceof Array&&(b=arguments[0]);for(var a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],c=0,f=0;f<4;f++)for(var g=0;g<4;g++,c++)a[c]+=this.elements[g+0]*b[f*4+0]+this.elements[g+4]*b[f*4+1]+this.elements[g+8]*b[f*4+2]+this.elements[g+12]*b[f*4+3];this.elements= a.slice()},apply:function(){var b;arguments.length===1&&arguments[0]instanceof E?b=arguments[0].array():arguments.length===16?b=Array.prototype.slice.call(arguments):arguments.length===1&&arguments[0]instanceof Array&&(b=arguments[0]);for(var a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],c=0,f=0;f<4;f++)for(var g=0;g<4;g++,c++)a[c]+=this.elements[f*4+0]*b[g+0]+this.elements[f*4+1]*b[g+4]+this.elements[f*4+2]*b[g+8]+this.elements[f*4+3]*b[g+12];this.elements=a.slice()},rotate:function(b,l,c,f){if(c){var g=a.cos(b), b=a.sin(b),d=1-g;this.apply(d*l*l+g,d*l*c-b*f,d*l*f+b*c,0,d*l*c+b*f,d*c*c+g,d*c*f-b*l,0,d*l*f-b*c,d*c*f+b*l,d*f*f+g,0,0,0,0,1)}else this.rotateZ(b)},invApply:function(){gc===p&&(gc=new E);var b=arguments;gc.set(b[0],b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9],b[10],b[11],b[12],b[13],b[14],b[15]);if(!gc.invert())return!1;this.preApply(gc);return!0},rotateX:function(b){var l=a.cos(b),b=a.sin(b);this.apply([1,0,0,0,0,l,-b,0,0,b,l,0,0,0,0,1])},rotateY:function(b){var l=a.cos(b),b=a.sin(b);this.apply([l, 0,b,0,0,1,0,0,-b,0,l,0,0,0,0,1])},rotateZ:function(b){var a=e.cos(b),b=e.sin(b);this.apply([a,-b,0,0,b,a,0,0,0,0,1,0,0,0,0,1])},scale:function(b,a,c){b&&!a&&!c?a=c=b:b&&a&&!c&&(c=1);b&&a&&c&&(this.elements[0]*=b,this.elements[1]*=a,this.elements[2]*=c,this.elements[4]*=b,this.elements[5]*=a,this.elements[6]*=c,this.elements[8]*=b,this.elements[9]*=a,this.elements[10]*=c,this.elements[12]*=b,this.elements[13]*=a,this.elements[14]*=c)},skewX:function(b){this.apply(1,e.tan(b),0,0,0,1,0,0,0,0,1,0,0,0, 0,1)},skewY:function(b){this.apply(1,0,0,0,e.tan(b),1,0,0,0,0,1,0,0,0,0,1)},multX:function(b,a,c,f){return c?f?this.elements[0]*b+this.elements[1]*a+this.elements[2]*c+this.elements[3]*f:this.elements[0]*b+this.elements[1]*a+this.elements[2]*c+this.elements[3]:this.elements[0]*b+this.elements[1]*a+this.elements[3]},multY:function(b,a,c,f){return c?f?this.elements[4]*b+this.elements[5]*a+this.elements[6]*c+this.elements[7]*f:this.elements[4]*b+this.elements[5]*a+this.elements[6]*c+this.elements[7]: this.elements[4]*b+this.elements[5]*a+this.elements[7]},multZ:function(b,a,c,f){return f?this.elements[8]*b+this.elements[9]*a+this.elements[10]*c+this.elements[11]*f:this.elements[8]*b+this.elements[9]*a+this.elements[10]*c+this.elements[11]},multW:function(b,a,c,f){return f?this.elements[12]*b+this.elements[13]*a+this.elements[14]*c+this.elements[15]*f:this.elements[12]*b+this.elements[13]*a+this.elements[14]*c+this.elements[15]},invert:function(){var b=this.elements[0]*this.elements[5]-this.elements[1]* this.elements[4],a=this.elements[0]*this.elements[6]-this.elements[2]*this.elements[4],c=this.elements[0]*this.elements[7]-this.elements[3]*this.elements[4],f=this.elements[1]*this.elements[6]-this.elements[2]*this.elements[5],g=this.elements[1]*this.elements[7]-this.elements[3]*this.elements[5],d=this.elements[2]*this.elements[7]-this.elements[3]*this.elements[6],i=this.elements[8]*this.elements[13]-this.elements[9]*this.elements[12],j=this.elements[8]*this.elements[14]-this.elements[10]*this.elements[12], n=this.elements[8]*this.elements[15]-this.elements[11]*this.elements[12],h=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],q=this.elements[10]*this.elements[15]-this.elements[11]*this.elements[14],o=b*q-a*m+c*h+f*n-g*j+d*i;if(e.abs(o)<=1.0E-9)return!1;var p=[];p[0]=+this.elements[5]*q-this.elements[6]*m+this.elements[7]*h;p[4]=-this.elements[4]*q+this.elements[6]*n-this.elements[7]*j;p[8]=+this.elements[4]* m-this.elements[5]*n+this.elements[7]*i;p[12]=-this.elements[4]*h+this.elements[5]*j-this.elements[6]*i;p[1]=-this.elements[1]*q+this.elements[2]*m-this.elements[3]*h;p[5]=+this.elements[0]*q-this.elements[2]*n+this.elements[3]*j;p[9]=-this.elements[0]*m+this.elements[1]*n-this.elements[3]*i;p[13]=+this.elements[0]*h-this.elements[1]*j+this.elements[2]*i;p[2]=+this.elements[13]*d-this.elements[14]*g+this.elements[15]*f;p[6]=-this.elements[12]*d+this.elements[14]*c-this.elements[15]*a;p[10]=+this.elements[12]* g-this.elements[13]*c+this.elements[15]*b;p[14]=-this.elements[12]*f+this.elements[13]*a-this.elements[14]*b;p[3]=-this.elements[9]*d+this.elements[10]*g-this.elements[11]*f;p[7]=+this.elements[8]*d-this.elements[10]*c+this.elements[11]*a;p[11]=-this.elements[8]*g+this.elements[9]*c-this.elements[11]*b;p[15]=+this.elements[8]*f-this.elements[9]*a+this.elements[10]*b;b=1/o;p[0]*=b;p[1]*=b;p[2]*=b;p[3]*=b;p[4]*=b;p[5]*=b;p[6]*=b;p[7]*=b;p[8]*=b;p[9]*=b;p[10]*=b;p[11]*=b;p[12]*=b;p[13]*=b;p[14]*=b;p[15]*= b;this.elements=p.slice();return!0},toString:function(){for(var b="",a=0;a<15;a++)b+=this.elements[a]+", ";b+=this.elements[15];return b},print:function(){var b=sd(this.elements),b=""+a.nfs(this.elements[0],b,4)+" "+a.nfs(this.elements[1],b,4)+" "+a.nfs(this.elements[2],b,4)+" "+a.nfs(this.elements[3],b,4)+"\n"+a.nfs(this.elements[4],b,4)+" "+a.nfs(this.elements[5],b,4)+" "+a.nfs(this.elements[6],b,4)+" "+a.nfs(this.elements[7],b,4)+"\n"+a.nfs(this.elements[8],b,4)+" "+a.nfs(this.elements[9],b,4)+ " "+a.nfs(this.elements[10],b,4)+" "+a.nfs(this.elements[11],b,4)+"\n"+a.nfs(this.elements[12],b,4)+" "+a.nfs(this.elements[13],b,4)+" "+a.nfs(this.elements[14],b,4)+" "+a.nfs(this.elements[15],b,4)+"\n\n";a.println(b)},invTranslate:function(b,a,c){this.preApply(1,0,0,-b,0,1,0,-a,0,0,1,-c,0,0,0,1)},invRotateX:function(b){var a=e.cos(-b),b=e.sin(-b);this.preApply([1,0,0,0,0,a,-b,0,0,b,a,0,0,0,0,1])},invRotateY:function(b){var a=e.cos(-b),b=e.sin(-b);this.preApply([a,0,b,0,0,1,0,0,-b,0,a,0,0,0,0,1])}, invRotateZ:function(b){var a=e.cos(-b),b=e.sin(-b);this.preApply([a,-b,0,0,b,a,0,0,0,0,1,0,0,0,0,1])},invScale:function(b,a,c){this.preApply([1/b,0,0,0,0,1/a,0,0,0,0,1/c,0,0,0,0,1])}};var bb=a.PMatrixStack=function(){this.matrixStack=[]};bb.prototype.load=function(){var b=ha.$newPMatrix();arguments.length===1?b.set(arguments[0]):b.set(arguments);this.matrixStack.push(b)};G.prototype.$newPMatrix=function(){return new ab};L.prototype.$newPMatrix=function(){return new E};bb.prototype.push=function(){this.matrixStack.push(this.peek())}; bb.prototype.pop=function(){return this.matrixStack.pop()};bb.prototype.peek=function(){var b=ha.$newPMatrix();b.set(this.matrixStack[this.matrixStack.length-1]);return b};bb.prototype.mult=function(b){this.matrixStack[this.matrixStack.length-1].apply(b)};a.split=function(b,a){return b.split(a)};a.splitTokens=function(b,a){arguments.length===1&&(a="\n\t\r\u000c ");for(var a="["+a+"]",c=[],f=0,g=b.search(a);g>=0;)g===0?b=b.substring(1):(c[f]=b.substring(0,g),f++,b=b.substring(g)),g=b.search(a);b.length> 0&&(c[f]=b);c.length===0&&(c=p);return c};a.append=function(b,a){b[b.length]=a;return b};a.concat=function(b,a){return b.concat(a)};a.sort=function(b,a){var c=[];if(b.length>0){for(var f=a>0?a:b.length,g=0;g0)for(f=c.length;f>8)};a.peg=function(b){return b<0?0:b>255?255:b};a.modes={replace:function(b,a){return a},blend:function(b,l){var k=(l&c.ALPHA_MASK)>>>24;return e.min(((b& c.ALPHA_MASK)>>>24)+k,255)<<24|a.mix(b&c.RED_MASK,l&c.RED_MASK,k)&c.RED_MASK|a.mix(b&c.GREEN_MASK,l&c.GREEN_MASK,k)&c.GREEN_MASK|a.mix(b&c.BLUE_MASK,l&c.BLUE_MASK,k)},add:function(b,a){var k=(a&c.ALPHA_MASK)>>>24;return e.min(((b&c.ALPHA_MASK)>>>24)+k,255)<<24|e.min((b&c.RED_MASK)+((a&c.RED_MASK)>>8)*k,c.RED_MASK)&c.RED_MASK|e.min((b&c.GREEN_MASK)+((a&c.GREEN_MASK)>>8)*k,c.GREEN_MASK)&c.GREEN_MASK|e.min((b&c.BLUE_MASK)+((a&c.BLUE_MASK)*k>>8),c.BLUE_MASK)},subtract:function(b,a){var k=(a&c.ALPHA_MASK)>>> 24;return e.min(((b&c.ALPHA_MASK)>>>24)+k,255)<<24|e.max((b&c.RED_MASK)-((a&c.RED_MASK)>>8)*k,c.GREEN_MASK)&c.RED_MASK|e.max((b&c.GREEN_MASK)-((a&c.GREEN_MASK)>>8)*k,c.BLUE_MASK)&c.GREEN_MASK|e.max((b&c.BLUE_MASK)-((a&c.BLUE_MASK)*k>>8),0)},lightest:function(b,a){var k=(a&c.ALPHA_MASK)>>>24;return e.min(((b&c.ALPHA_MASK)>>>24)+k,255)<<24|e.max(b&c.RED_MASK,((a&c.RED_MASK)>>8)*k)&c.RED_MASK|e.max(b&c.GREEN_MASK,((a&c.GREEN_MASK)>>8)*k)&c.GREEN_MASK|e.max(b&c.BLUE_MASK,(a&c.BLUE_MASK)*k>>8)},darkest:function(b, l){var k=(l&c.ALPHA_MASK)>>>24;return e.min(((b&c.ALPHA_MASK)>>>24)+k,255)<<24|a.mix(b&c.RED_MASK,e.min(b&c.RED_MASK,((l&c.RED_MASK)>>8)*k),k)&c.RED_MASK|a.mix(b&c.GREEN_MASK,e.min(b&c.GREEN_MASK,((l&c.GREEN_MASK)>>8)*k),k)&c.GREEN_MASK|a.mix(b&c.BLUE_MASK,e.min(b&c.BLUE_MASK,(l&c.BLUE_MASK)*k>>8),k)},difference:function(b,l){var k=(l&c.ALPHA_MASK)>>>24,f=(b&c.RED_MASK)>>16,g=(b&c.GREEN_MASK)>>8,d=b&c.BLUE_MASK,i=(l&c.RED_MASK)>>16,j=(l&c.GREEN_MASK)>>8,n=l&c.BLUE_MASK,i=f>i?f-i:i-f,j=g>j?g-j:j-g, n=d>n?d-n:n-d;return e.min(((b&c.ALPHA_MASK)>>>24)+k,255)<<24|a.peg(f+((i-f)*k>>8))<<16|a.peg(g+((j-g)*k>>8))<<8|a.peg(d+((n-d)*k>>8))},exclusion:function(b,l){var k=(l&c.ALPHA_MASK)>>>24,f=(b&c.RED_MASK)>>16,g=(b&c.GREEN_MASK)>>8,d=b&c.BLUE_MASK,i=(l&c.RED_MASK)>>16,j=(l&c.GREEN_MASK)>>8,n=l&c.BLUE_MASK,i=f+i-(f*i>>7),j=g+j-(g*j>>7),n=d+n-(d*n>>7);return e.min(((b&c.ALPHA_MASK)>>>24)+k,255)<<24|a.peg(f+((i-f)*k>>8))<<16|a.peg(g+((j-g)*k>>8))<<8|a.peg(d+((n-d)*k>>8))},multiply:function(b,l){var k= (l&c.ALPHA_MASK)>>>24,f=(b&c.RED_MASK)>>16,g=(b&c.GREEN_MASK)>>8,d=b&c.BLUE_MASK,i=f*((l&c.RED_MASK)>>16)>>8,j=g*((l&c.GREEN_MASK)>>8)>>8,n=d*(l&c.BLUE_MASK)>>8;return e.min(((b&c.ALPHA_MASK)>>>24)+k,255)<<24|a.peg(f+((i-f)*k>>8))<<16|a.peg(g+((j-g)*k>>8))<<8|a.peg(d+((n-d)*k>>8))},screen:function(b,l){var k=(l&c.ALPHA_MASK)>>>24,f=(b&c.RED_MASK)>>16,g=(b&c.GREEN_MASK)>>8,d=b&c.BLUE_MASK,i=255-((255-f)*(255-((l&c.RED_MASK)>>16))>>8),j=255-((255-g)*(255-((l&c.GREEN_MASK)>>8))>>8),n=255-((255-d)*(255- (l&c.BLUE_MASK))>>8);return e.min(((b&c.ALPHA_MASK)>>>24)+k,255)<<24|a.peg(f+((i-f)*k>>8))<<16|a.peg(g+((j-g)*k>>8))<<8|a.peg(d+((n-d)*k>>8))},hard_light:function(b,l){var k=(l&c.ALPHA_MASK)>>>24,f=(b&c.RED_MASK)>>16,g=(b&c.GREEN_MASK)>>8,d=b&c.BLUE_MASK,i=(l&c.RED_MASK)>>16,j=(l&c.GREEN_MASK)>>8,n=l&c.BLUE_MASK,i=i<128?f*i>>7:255-((255-f)*(255-i)>>7),j=j<128?g*j>>7:255-((255-g)*(255-j)>>7),n=n<128?d*n>>7:255-((255-d)*(255-n)>>7);return e.min(((b&c.ALPHA_MASK)>>>24)+k,255)<<24|a.peg(f+((i-f)*k>>8))<< 16|a.peg(g+((j-g)*k>>8))<<8|a.peg(d+((n-d)*k>>8))},soft_light:function(b,l){var k=(l&c.ALPHA_MASK)>>>24,f=(b&c.RED_MASK)>>16,g=(b&c.GREEN_MASK)>>8,d=b&c.BLUE_MASK,i=(l&c.RED_MASK)>>16,j=(l&c.GREEN_MASK)>>8,n=l&c.BLUE_MASK,i=(f*i>>7)+(f*f>>8)-(f*f*i>>15),j=(g*j>>7)+(g*g>>8)-(g*g*j>>15),n=(d*n>>7)+(d*d>>8)-(d*d*n>>15);return e.min(((b&c.ALPHA_MASK)>>>24)+k,255)<<24|a.peg(f+((i-f)*k>>8))<<16|a.peg(g+((j-g)*k>>8))<<8|a.peg(d+((n-d)*k>>8))},overlay:function(b,l){var k=(l&c.ALPHA_MASK)>>>24,f=(b&c.RED_MASK)>> 16,g=(b&c.GREEN_MASK)>>8,d=b&c.BLUE_MASK,i=(l&c.RED_MASK)>>16,j=(l&c.GREEN_MASK)>>8,n=l&c.BLUE_MASK,i=f<128?f*i>>7:255-((255-f)*(255-i)>>7),j=g<128?g*j>>7:255-((255-g)*(255-j)>>7),n=d<128?d*n>>7:255-((255-d)*(255-n)>>7);return e.min(((b&c.ALPHA_MASK)>>>24)+k,255)<<24|a.peg(f+((i-f)*k>>8))<<16|a.peg(g+((j-g)*k>>8))<<8|a.peg(d+((n-d)*k>>8))},dodge:function(b,l){var k=(l&c.ALPHA_MASK)>>>24,f=(b&c.RED_MASK)>>16,g=(b&c.GREEN_MASK)>>8,d=b&c.BLUE_MASK,i=(l&c.RED_MASK)>>16,j=(l&c.GREEN_MASK)>>8,n=l&c.BLUE_MASK, i=i===255?255:a.peg((f<<8)/(255-i)),j=j===255?255:a.peg((g<<8)/(255-j)),n=n===255?255:a.peg((d<<8)/(255-n));return e.min(((b&c.ALPHA_MASK)>>>24)+k,255)<<24|a.peg(f+((i-f)*k>>8))<<16|a.peg(g+((j-g)*k>>8))<<8|a.peg(d+((n-d)*k>>8))},burn:function(b,l){var k=(l&c.ALPHA_MASK)>>>24,f=(b&c.RED_MASK)>>16,g=(b&c.GREEN_MASK)>>8,d=b&c.BLUE_MASK,i=(l&c.RED_MASK)>>16,j=(l&c.GREEN_MASK)>>8,n=l&c.BLUE_MASK,i=i===0?0:255-a.peg((255-f<<8)/i),j=j===0?0:255-a.peg((255-g<<8)/j),n=n===0?0:255-a.peg((255-d<<8)/n);return e.min(((b& c.ALPHA_MASK)>>>24)+k,255)<<24|a.peg(f+((i-f)*k>>8))<<16|a.peg(g+((j-g)*k>>8))<<8|a.peg(d+((n-d)*k>>8))}};a.color=function(b,a,k,f){if(b!==p&&a!==p&&k!==p&&f!==p)return x(b,a,k,f);if(b!==p&&a!==p&&k!==p)return x(b,a,k,ea);if(b!==p&&a!==p){var g;b&c.ALPHA_MASK?(a=e.round(255*(a/ea)),g=b-(b&c.ALPHA_MASK)+((a>255?255:a)<<24&c.ALPHA_MASK)):Ma===c.RGB?g=x(b,b,b,a):Ma===c.HSB&&(g=x(0,0,b/ja*xa,a));return g}if(typeof b==="number"){var d;b<=ja&&b>=0?Ma===c.RGB?d=x(b,b,b,ea):Ma===c.HSB&&(d=x(0,0,b/ja*xa,ea)): b&&(d=b);return d}return x(ja,z,xa,ea)};a.color.toString=function(b){return"rgba("+((b&c.RED_MASK)>>>16)+","+((b&c.GREEN_MASK)>>>8)+","+(b&c.BLUE_MASK)+","+((b&c.ALPHA_MASK)>>>24)/255+")"};a.color.toInt=function(b,a,k,f){return f<<24&c.ALPHA_MASK|b<<16&c.RED_MASK|a<<8&c.GREEN_MASK|k&c.BLUE_MASK};a.color.toArray=function(b){return[(b&c.RED_MASK)>>>16,(b&c.GREEN_MASK)>>>8,b&c.BLUE_MASK,(b&c.ALPHA_MASK)>>>24]};a.color.toGLArray=function(b){return[((b&c.RED_MASK)>>>16)/255,((b&c.GREEN_MASK)>>>8)/255, (b&c.BLUE_MASK)/255,((b&c.ALPHA_MASK)>>>24)/255]};a.color.toRGB=function(b,a,c){var b=b>ja?ja:b,a=a>z?z:a,c=c>xa?xa:c,b=b/ja*360,a=a/z*100,c=c/xa*100,f=e.round(c/100*255);if(a===0)return[f,f,f];else{b%=360;var d=b%60,P=e.round(c*(100-a)/1E4*255),i=e.round(c*(6E3-a*d)/6E5*255),a=e.round(c*(6E3-a*(60-d))/6E5*255);switch(e.floor(b/60)){case 0:return[f,a,P];case 1:return[i,f,P];case 2:return[P,f,a];case 3:return[P,i,f];case 4:return[a,P,f];case 5:return[f,P,i]}}};a.color.toHSB=function(b){var l,k,f;l= ((b&c.RED_MASK)>>>16)/255;k=((b&c.GREEN_MASK)>>>8)/255;f=(b&c.BLUE_MASK)/255;var b=a.max(a.max(l,k),f),d=a.min(a.min(l,k),f);if(d===b)return[0,0,b];else l=l===b?(k-f)/(b-d):k===b?2+(f-l)/(b-d):4+(l-k)/(b-d),l/=6,l<0?l+=1:l>1&&(l-=1);return[l*ja,(b-d)/b*z,b*xa]};a.brightness=function(b){return a.color.toHSB(b)[2]};a.saturation=function(b){return a.color.toHSB(b)[1]};a.hue=function(b){return a.color.toHSB(b)[0]};a.red=function(b){return((b&c.RED_MASK)>>>16)/255*ja};a.green=function(b){return((b&c.GREEN_MASK)>>> 8)/255*z};a.blue=function(b){return(b&c.BLUE_MASK)/255*xa};a.alpha=function(b){return((b&c.ALPHA_MASK)>>>24)/255*ea};a.lerpColor=function(b,l,k){var f=a.color(b),d=(f&c.RED_MASK)>>>16,e=(f&c.GREEN_MASK)>>>8,b=f&c.BLUE_MASK,f=((f&c.ALPHA_MASK)>>>24)/ea,i=a.color(l),j=(i&c.GREEN_MASK)>>>8,n=i&c.BLUE_MASK,l=((i&c.ALPHA_MASK)>>>24)/ea,d=parseInt(a.lerp(d,(i&c.RED_MASK)>>>16,k),10),e=parseInt(a.lerp(e,j,k),10),b=parseInt(a.lerp(b,n,k),10),k=parseFloat(a.lerp(f,l,k)*ea);return a.color.toInt(d,e,b,k)};a.defaultColor= function(b,l,k){var f=Ma;Ma=c.RGB;b=a.color(b/255*ja,l/255*z,k/255*xa);Ma=f;return b};a.colorMode=function(){Ma=arguments[0];arguments.length>1&&(ja=arguments[1],z=arguments[2]||arguments[1],xa=arguments[3]||arguments[1],ea=arguments[4]||arguments[1])};a.blendColor=function(b,l,k){var f=0;switch(k){case c.REPLACE:f=a.modes.replace(b,l);break;case c.BLEND:f=a.modes.blend(b,l);break;case c.ADD:f=a.modes.add(b,l);break;case c.SUBTRACT:f=a.modes.subtract(b,l);break;case c.LIGHTEST:f=a.modes.lightest(b, l);break;case c.DARKEST:f=a.modes.darkest(b,l);break;case c.DIFFERENCE:f=a.modes.difference(b,l);break;case c.EXCLUSION:f=a.modes.exclusion(b,l);break;case c.MULTIPLY:f=a.modes.multiply(b,l);break;case c.SCREEN:f=a.modes.screen(b,l);break;case c.HARD_LIGHT:f=a.modes.hard_light(b,l);break;case c.SOFT_LIGHT:f=a.modes.soft_light(b,l);break;case c.OVERLAY:f=a.modes.overlay(b,l);break;case c.DODGE:f=a.modes.dodge(b,l);break;case c.BURN:f=a.modes.burn(b,l)}return f};a.printMatrix=function(){V.print()}; G.prototype.translate=function(b,a){ua.translate(b,a);va.invTranslate(b,a);d.translate(b,a)};L.prototype.translate=function(b,a,c){ua.translate(b,a,c);va.invTranslate(b,a,c)};G.prototype.scale=function(b,a){ua.scale(b,a);va.invScale(b,a);d.scale(b,a||b)};L.prototype.scale=function(b,a,c){ua.scale(b,a,c);va.invScale(b,a,c)};G.prototype.pushMatrix=function(){Nb.load(V);Ob.load(Ya);d.save()};L.prototype.pushMatrix=function(){Nb.load(V);Ob.load(Ya)};G.prototype.popMatrix=function(){V.set(Nb.pop());Ya.set(Ob.pop()); Xb()};L.prototype.popMatrix=function(){V.set(Nb.pop());Ya.set(Ob.pop())};G.prototype.resetMatrix=function(){ua.reset();va.reset();d.setTransform(1,0,0,1,0,0)};L.prototype.resetMatrix=function(){ua.reset();va.reset()};H.prototype.applyMatrix=function(){var b=arguments;ua.apply(b[0],b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9],b[10],b[11],b[12],b[13],b[14],b[15]);va.invApply(b[0],b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9],b[10],b[11],b[12],b[13],b[14],b[15])};G.prototype.applyMatrix=function(){for(var b= arguments,a=b.length;a<16;a++)b[a]=0;b[10]=b[15]=1;H.prototype.applyMatrix.apply(this,b)};a.rotateX=function(b){ua.rotateX(b);va.invRotateX(b)};a.rotateZ=function(b){ua.rotateZ(b);va.invRotateZ(b);a.use3DContext||d.rotate(b)};a.rotateY=function(b){ua.rotateY(b);va.invRotateY(b)};G.prototype.rotate=function(b){a.rotateZ(b)};L.prototype.rotate=function(b){a.rotateZ(b)};a.pushStyle=function(){d.save();a.pushMatrix();od.push({doFill:U,currentFillColor:Ha,doStroke:O,currentStrokeColor:ma,curTint:ob,curRectMode:ba, curColorMode:Ma,colorModeX:ja,colorModeZ:xa,colorModeY:z,colorModeA:ea,curTextFont:fa,curTextSize:S})};a.popStyle=function(){var b=od.pop();if(b)Xb(),a.popMatrix(),U=b.doFill,Ha=b.currentFillColor,O=b.doStroke,ma=b.currentStrokeColor,ob=b.curTint,ba=b.curRectmode,Ma=b.curColorMode,ja=b.colorModeX,xa=b.colorModeZ,z=b.colorModeY,ea=b.colorModeA,fa=b.curTextFont,S=b.curTextSize;else throw"Too many popStyle() without enough pushStyle()";};a.year=function(){return(new Date).getFullYear()};a.month=function(){return(new Date).getMonth()+ 1};a.day=function(){return(new Date).getDate()};a.hour=function(){return(new Date).getHours()};a.minute=function(){return(new Date).getMinutes()};a.second=function(){return(new Date).getSeconds()};a.millis=function(){return(new Date).getTime()-Tb};H.prototype.redraw=function(){var b=((new Date).getTime()-zb)/1E3;kc++;var c=kc/b;if(b>0.5)zb=(new Date).getTime(),kc=0,a.__frameRate=c;a.frameCount++};G.prototype.redraw=function(){H.prototype.redraw.apply(this,arguments);d.lineWidth=da;d.save();a.draw(); Xb()};L.prototype.redraw=function(){H.prototype.redraw.apply(this,arguments);d.clear(d.DEPTH_BUFFER_BIT);Pa={attributes:{},locations:{}};a.noLights();a.lightFalloff(1,0,0);a.shininess(1);a.ambient(255,255,255);a.specular(0,0,0);a.emissive(0,0,0);a.camera();a.draw()};a.noLoop=function(){Eb=K=!1;clearInterval(W)};a.loop=function(){Eb||(zb=(new Date).getTime(),kc=0,W=T.setInterval(function(){try{a.redraw()}catch(b){throw T.clearInterval(W),b;}},za),Eb=K=!0)};a.frameRate=function(b){tb=b;za=1E3/tb;K&& (a.noLoop(),a.loop())};var $a=[];a.exit=function(){T.clearInterval(W);var b=a.externals.canvas.id;Oa.splice(nc[b],1);delete nc[b];for(var c in w.lib)w.lib.hasOwnProperty(c)&&w.lib[c].hasOwnProperty("detach")&&w.lib[c].detach(a);b=0;for(c=$a.length;b1||arguments.length===1&&arguments[0]instanceof a.PImage){var b=arguments[0], c,k;if(arguments.length>=3){if(c=arguments[1],k=arguments[2],c<0||k<0||k>=b.height||c>=b.width)throw"x and y must be non-negative and less than the dimensions of the image";}else c=b.width>>>1,k=b.height>>>1;b='url("'+b.toDataURL()+'") '+c+" "+k+", default";h.style.cursor=b}else h.style.cursor=arguments.length===1?arguments[0]:nb};a.noCursor=function(){h.style.cursor=c.NOCURSOR};a.link=function(b,a){a!==p?T.open(b,a):T.location=b};a.beginDraw=function(){};a.endDraw=function(){};a.Import=function(){}; var td=function(b){b.preventDefault();b.stopPropagation()};a.disableContextMenu=function(){h.addEventListener("contextmenu",td,!1)};a.enableContextMenu=function(){h.removeEventListener("contextmenu",td,!1)};a.status=function(b){T.status=b};a.binary=function(b,a){var c=32;if(typeof b==="number")return a&&(c=a),Xc(b,c);b instanceof Aa&&(b=b.toString().charCodeAt(0),c=a?32:16);c=Xc(b,c);a&&(c=c.substr(-a));return c};a.unbinary=function(b){var c=/^[0|1]{8}$/,k=0;if(b instanceof Array){k=[];for(c=0;c< b.length;c++)k[c]=a.unbinary(b[c]);return k}else if(isNaN(b))throw"NaN_Err";else if(arguments.length===1||b.length===8)if(c.test(b)){for(c=0;c<8;c++)k+=e.pow(2,c)*parseInt(b.charAt(7-c),10);return k+""}else throw"notBinary: the value passed into unbinary was not an 8 bit binary number";else throw"longErr";};a.nf=function(b,a,c){return Y(b,"","-",a,c)};a.nfs=function(b,a,c){return Y(b," ","-",a,c)};a.nfp=function(b,a,c){return Y(b,"+","-",a,c)};a.nfc=function(b,a,c){return Y(b,"","-",a,c,",")};a.hex= function(b,a){arguments.length===1&&(a=b instanceof Aa?4:8);var c=b,f=a,f=f===p||f===null?f=8:f;c<0&&(c=4294967295+c+1);for(c=Number(c).toString(16).toUpperCase();c.length=f&&(c=c.substring(c.length-f,c.length));return c};a.unhex=function(b){if(b instanceof Array){for(var a=[],c=0;c0?c:null};a.__contains=function(b,a){if(typeof b!=="string")return b.contains.apply(b,ca(arguments));return b!==null&&a!==null&&typeof a==="string"&&b.indexOf(a)>-1}; a.__replaceAll=function(b,a,c){if(typeof b!=="string")return b.replaceAll.apply(b,ca(arguments));return b.replace(RegExp(a,"g"),c)};a.__replaceFirst=function(b,a,c){if(typeof b!=="string")return b.replaceFirst.apply(b,ca(arguments));return b.replace(RegExp(a,""),c)};a.__replace=function(b,a,c){if(typeof b!=="string")return b.replace.apply(b,ca(arguments));if(a instanceof RegExp)return b.replace(a,c);typeof a!=="string"&&(a=a.toString());if(a==="")return b;var f=b.indexOf(a);if(f<0)return b;var d= 0,e="";do e+=b.substring(d,f)+c,d=f+a.length;while((f=b.indexOf(a,d))>=0);return e+b.substring(d)};a.__equals=function(b,a){if(b.equals instanceof Function)return b.equals.apply(b,ca(arguments));return b.valueOf()===a.valueOf()};a.__toCharArray=function(b){if(typeof b!=="string")return b.toCharArray.apply(b,ca(arguments));for(var a=[],c=0,f=b.length;c0;){c=f.shift();if(c===a)return!0;c.$interfaces&&(f=f.concat(c.$interfaces))}return!1}for(;c.hasOwnProperty("$base");)if(c=c.$base,c===a)return!0;return!1};a.abs=e.abs;a.ceil=e.ceil;a.constrain=function(b,a,c){return b>c?c:b0))throw"Non-empty array is expected";for(var a=b[0],c=b.length,f=1;f0))throw"Non-empty array is expected";for(var a=b[0],c=b.length,f=1;f< c;++f)a>b[f]&&(a=b[f]);return a}};a.norm=function(b,a,c){return(b-a)/(c-a)};a.pow=e.pow;a.round=e.round;a.sq=function(b){return b*b};a.sqrt=e.sqrt;a.acos=e.acos;a.asin=e.asin;a.atan=e.atan;a.atan2=e.atan2;a.cos=e.cos;a.degrees=function(b){return b*180/e.PI};a.radians=function(b){return b/180*e.PI};a.sin=e.sin;a.tan=e.tan;var yc=e.random;a.random=function(){if(arguments.length===0)return yc();else if(arguments.length===1)return yc()*arguments[0];else{var b=arguments[0],a=arguments[1];return yc()*(a- b)+b}};gb.createRandomized=function(){var b=new Date;return new gb(b/6E4&4294967295,b&4294967295)};a.randomSeed=function(b){yc=(new gb(b)).nextDouble};a.Random=function(b){var a=!1,c,f;this.nextGaussian=function(){if(a)return a=!1,c;else{var b,d,i;do b=2*f()-1,d=2*f()-1,i=b*b+d*d;while(i>=1||i===0);i=e.sqrt(-2*e.log(i)/i);c=d*i;a=!0;return b*i}};f=b===p?e.random:(new gb(b)).nextDouble};var Za={generator:p,octaves:4,fallout:0.5,seed:p};a.noise=function(b,a,c){if(Za.generator===p)Za.generator=new Ad(Za.seed); for(var f=Za.generator,d=1,e=1,i=0,j=0;j 0&&(h.style.removeProperty("width"),h.style.removeProperty("height"));h.width=a.width=b||100;h.height=a.height=l||100;for(var f in k)k.hasOwnProperty(f)&&(d[f]=k[f]);a.textSize(S);a.background();kd=e.max(1E3,b*l*0.05);a.externals.context=d;for(k=0;k0?(a=new E,a.set(b),c=new E,c.set(f),a.mult(c),c=new E,c.set(a),c.invert(),c.transpose(),v("normalTransform3d",u,"normalTransform", !1,c.array()),r("normal3d",u,"Normal",3,Jc)):N("normal3d",u,"Normal"),r("vertex3d",u,"Vertex",3,Ic),N("aColor3d",u,"aColor"),N("aTexture3d",u,"aTexture"),d.drawArrays(d.TRIANGLES,0,pd.length/3),d.disable(d.POLYGON_OFFSET_FILL));da>0&&O&&(d.useProgram(D),v("model2d",D,"model",!1,f.array()),v("view2d",D,"view",!1,b.array()),s("color2d",D,"color",na),C("picktype2d",D,"picktype",0),r("vertex2d",D,"Vertex",3,Kc),N("aTextureCoord2d",D,"aTextureCoord"),d.lineWidth(da),d.drawArrays(d.LINES,0,qd.length/3))}; a.sphereDetail=function(b,a){var k;arguments.length===1&&(b=a=arguments[0]);b<3&&(b=3);a<2&&(a=2);if(!(b===vb&&a===sc)){var f=c.SINCOS_LENGTH/b,g=new I(b),e=new I(b);for(k=0;k0){var k=new E;k.set(b);var f=new E;f.set(c);k.mult(f);f=new E;f.set(k);f.invert();f.transpose();v("normalTransform3d",u,"normalTransform",!1,f.array());r("normal3d",u,"Normal",3,fc)}else N("normal3d",u,"Normal");d.useProgram(u);N("aTexture3d",u,"aTexture");v("model3d",u,"model",!1,c.array());v("view3d",u,"view",!1,b.array());r("vertex3d",u,"Vertex",3,fc);N("aColor3d",u,"aColor");d.enable(d.POLYGON_OFFSET_FILL);d.polygonOffset(1, 1);s("color3d",u,"color",pa);d.drawArrays(d.TRIANGLE_STRIP,0,Q.length/3);d.disable(d.POLYGON_OFFSET_FILL)}da>0&&O&&(d.useProgram(D),v("model2d",D,"model",!1,c.array()),v("view2d",D,"view",!1,b.array()),r("vertex2d",D,"Vertex",3,fc),N("aTextureCoord2d",D,"aTextureCoord"),s("color2d",D,"color",na),C("picktype2d",D,"picktype",0),d.lineWidth(da),d.drawArrays(d.LINE_STRIP,0,Q.length/3))};a.modelX=function(b,a,c){var f=V.array(),d=Xa.array(),e=f[0]*b+f[1]*a+f[2]*c+f[3],i=f[4]*b+f[5]*a+f[6]*c+f[7],j=f[8]* b+f[9]*a+f[10]*c+f[11],a=f[12]*b+f[13]*a+f[14]*c+f[15],b=d[0]*e+d[1]*i+d[2]*j+d[3]*a,d=d[12]*e+d[13]*i+d[14]*j+d[15]*a;return d!==0?b/d:b};a.modelY=function(b,a,c){var f=V.array(),d=Xa.array(),e=f[0]*b+f[1]*a+f[2]*c+f[3],i=f[4]*b+f[5]*a+f[6]*c+f[7],j=f[8]*b+f[9]*a+f[10]*c+f[11],a=f[12]*b+f[13]*a+f[14]*c+f[15],b=d[4]*e+d[5]*i+d[6]*j+d[7]*a,d=d[12]*e+d[13]*i+d[14]*j+d[15]*a;return d!==0?b/d:b};a.modelZ=function(b,a,c){var d=V.array(),g=Xa.array(),e=d[0]*b+d[1]*a+d[2]*c+d[3],i=d[4]*b+d[5]*a+d[6]*c+d[7], j=d[8]*b+d[9]*a+d[10]*c+d[11],a=d[12]*b+d[13]*a+d[14]*c+d[15],b=g[8]*e+g[9]*i+g[10]*j+g[11]*a,g=g[12]*e+g[13]*i+g[14]*j+g[15]*a;return g!==0?b/g:b};G.prototype.ambient=H.prototype.a3DOnlyFunction;L.prototype.ambient=function(){var b=arguments;d.useProgram(u);C("usingMat3d",u,"usingMat",!0);b.length===1?typeof b[0]==="string"?(b=b[0].slice(5,-1).split(","),s("mat_ambient3d",u,"mat_ambient",[b[0]/255,b[1]/255,b[2]/255])):s("mat_ambient3d",u,"mat_ambient",[b[0]/255,b[0]/255,b[0]/255]):s("mat_ambient3d", u,"mat_ambient",[b[0]/255,b[1]/255,b[2]/255])};G.prototype.emissive=H.prototype.a3DOnlyFunction;L.prototype.emissive=function(){var b=arguments;d.useProgram(u);C("usingMat3d",u,"usingMat",!0);b.length===1?typeof b[0]==="string"?(b=b[0].slice(5,-1).split(","),s("mat_emissive3d",u,"mat_emissive",[b[0]/255,b[1]/255,b[2]/255])):s("mat_emissive3d",u,"mat_emissive",[b[0]/255,b[0]/255,b[0]/255]):s("mat_emissive3d",u,"mat_emissive",[b[0]/255,b[1]/255,b[2]/255])};G.prototype.shininess=H.prototype.a3DOnlyFunction; L.prototype.shininess=function(b){d.useProgram(u);C("usingMat3d",u,"usingMat",!0);s("shininess3d",u,"shininess",b)};G.prototype.specular=H.prototype.a3DOnlyFunction;L.prototype.specular=function(){var b=a.color.apply(this,arguments);d.useProgram(u);C("usingMat3d",u,"usingMat",!0);s("mat_specular3d",u,"mat_specular",a.color.toGLArray(b).slice(0,3))};a.screenX=function(b,c,d){var f=V.array();if(f.length===16){var g=f[0]*b+f[1]*c+f[2]*d+f[3],e=f[4]*b+f[5]*c+f[6]*d+f[7],i=f[8]*b+f[9]*c+f[10]*d+f[11], c=f[12]*b+f[13]*c+f[14]*d+f[15],d=Qa.array(),b=d[0]*g+d[1]*e+d[2]*i+d[3]*c,g=d[12]*g+d[13]*e+d[14]*i+d[15]*c;g!==0&&(b/=g);return a.width*(1+b)/2}else return V.multX(b,c)};a.screenY=function(b,c,d){var f=V.array();if(f.length===16){var g=f[0]*b+f[1]*c+f[2]*d+f[3],e=f[4]*b+f[5]*c+f[6]*d+f[7],i=f[8]*b+f[9]*c+f[10]*d+f[11],c=f[12]*b+f[13]*c+f[14]*d+f[15],d=Qa.array(),b=d[4]*g+d[5]*e+d[6]*i+d[7]*c,g=d[12]*g+d[13]*e+d[14]*i+d[15]*c;g!==0&&(b/=g);return a.height*(1+b)/2}else return V.multY(b,c)};a.screenZ= function(b,a,c){var d=V.array();if(d.length!==16)return 0;var g=Qa.array(),e=d[0]*b+d[1]*a+d[2]*c+d[3],i=d[4]*b+d[5]*a+d[6]*c+d[7],j=d[8]*b+d[9]*a+d[10]*c+d[11],a=d[12]*b+d[13]*a+d[14]*c+d[15],b=g[8]*e+g[9]*i+g[10]*j+g[11]*a,g=g[12]*e+g[13]*i+g[14]*j+g[15]*a;g!==0&&(b/=g);return(b+1)/2};H.prototype.fill=function(b,c,d,f){b=a.color(b,c,d,f);b===Ha&&U||(U=!0,Ha=b)};G.prototype.fill=function(){H.prototype.fill.apply(this,arguments);Ia=!0};L.prototype.fill=function(){H.prototype.fill.apply(this,arguments); pa=a.color.toGLArray(Ha)};a.noFill=function(){U=!1};H.prototype.stroke=function(b,c,d,f){b=a.color(b,c,d,f);b===ma&&O||(O=!0,ma=b)};G.prototype.stroke=function(){H.prototype.stroke.apply(this,arguments);Ta=!0};L.prototype.stroke=function(){H.prototype.stroke.apply(this,arguments);na=a.color.toGLArray(ma)};a.noStroke=function(){O=!1};H.prototype.strokeWeight=function(b){da=b};G.prototype.strokeWeight=function(b){H.prototype.strokeWeight.apply(this,arguments);d.lineWidth=b};L.prototype.strokeWeight= function(b){H.prototype.strokeWeight.apply(this,arguments);d.useProgram(D);s("pointSize2d",D,"pointSize",b)};a.strokeCap=function(b){ha.$ensureContext().lineCap=b};a.strokeJoin=function(b){ha.$ensureContext().lineJoin=b};H.prototype.smooth=function(){h.style.setProperty("image-rendering","optimizeQuality","important")};G.prototype.smooth=function(){H.prototype.smooth.apply(this,arguments);if("mozImageSmoothingEnabled"in d)d.mozImageSmoothingEnabled=!0};H.prototype.noSmooth=function(){h.style.setProperty("image-rendering", "optimizeSpeed","important")};G.prototype.noSmooth=function(){H.prototype.noSmooth.apply(this,arguments);if("mozImageSmoothingEnabled"in d)d.mozImageSmoothingEnabled=!1};G.prototype.point=function(b,l){if(O)if(aa.options.crispLines){var k=e.PI/4,f=a.get(b,l);a.set(b,l,Bd(f,ma,k))}else da>1?(d.fillStyle=a.color.toString(ma),Ia=!0,d.beginPath(),d.arc(b,l,da/2,0,c.TWO_PI,!1),d.fill(),d.closePath()):(d.fillStyle=a.color.toString(ma),d.fillRect(e.round(b),e.round(l),1,1),Ia=!0)};L.prototype.point=function(b, a,c){var f=new E;f.translate(b,a,c||0);f.transpose();b=new E;b.scale(1,-1,1);b.apply(V.array());b.transpose();d.useProgram(D);v("model2d",D,"model",!1,f.array());v("view2d",D,"view",!1,b.array());da>0&&O&&(s("color2d",D,"color",na),C("picktype2d",D,"picktype",0),r("vertex2d",D,"Vertex",3,qc),N("aTextureCoord2d",D,"aTextureCoord"),d.drawArrays(d.POINTS,0,1))};a.beginShape=function(b){X=b;m=[]};H.prototype.vertex=function(){var b=[];Rb&&(Rb=!1);arguments.length===4?(b[0]=arguments[0],b[1]=arguments[1], b[2]=0,b[3]=arguments[2],b[4]=arguments[3]):(b[0]=arguments[0],b[1]=arguments[1],b[2]=arguments[2]||0,b[3]=arguments[3]||0,b[4]=arguments[4]||0);b.isVert=!0;return b};G.prototype.vertex=function(){var b=H.prototype.vertex.apply(this,arguments);b[5]=Ha;b[6]=ma;m.push(b)};L.prototype.vertex=function(){var b=H.prototype.vertex.apply(this,arguments);b[5]=pa[0];b[6]=pa[1];b[7]=pa[2];b[8]=pa[3];b[9]=na[0];b[10]=na[1];b[11]=na[2];b[12]=na[3];b[13]=pb;b[14]=fb;b[15]=rb;m.push(b)};var ud=function(b,a){var c= new E;c.scale(1,-1,1);c.apply(V.array());c.transpose();d.useProgram(Ea);v("uViewUS",Ea,"uView",!1,c.array());r("aVertexUS",Ea,"aVertex",3,qc);d.bufferData(d.ARRAY_BUFFER,new I(b),d.STREAM_DRAW);r("aColorUS",Ea,"aColor",4,Nc);d.bufferData(d.ARRAY_BUFFER,new I(a),d.STREAM_DRAW);d.drawArrays(d.POINTS,0,b.length/3)},Ka=function(b,a,c){var a=a==="LINES"?d.LINES:a==="LINE_LOOP"?d.LINE_LOOP:d.LINE_STRIP,f=new E;f.scale(1,-1,1);f.apply(V.array());f.transpose();d.useProgram(Ea);v("uViewUS",Ea,"uView",!1,f.array()); r("aVertexUS",Ea,"aVertex",3,Mc);d.bufferData(d.ARRAY_BUFFER,new I(b),d.STREAM_DRAW);r("aColorUS",Ea,"aColor",4,Vb);d.bufferData(d.ARRAY_BUFFER,new I(c),d.STREAM_DRAW);d.lineWidth(da);d.drawArrays(a,0,b.length/3)},cb=function(b,a,k,f){var a=a==="TRIANGLES"?d.TRIANGLES:a==="TRIANGLE_FAN"?d.TRIANGLE_FAN:d.TRIANGLE_STRIP,g=new E;g.scale(1,-1,1);g.apply(V.array());g.transpose();d.useProgram(u);v("model3d",u,"model",!1,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);v("view3d",u,"view",!1,g.array());d.enable(d.POLYGON_OFFSET_FILL); d.polygonOffset(1,1);s("color3d",u,"color",[-1,0,0,0]);r("vertex3d",u,"Vertex",3,Ub);d.bufferData(d.ARRAY_BUFFER,new I(b),d.STREAM_DRAW);r("aColor3d",u,"aColor",4,Nc);d.bufferData(d.ARRAY_BUFFER,new I(k),d.STREAM_DRAW);N("normal3d",u,"Normal");if(Fa){if(id===c.IMAGE)for(k=0;k1&&(f[k+0]-=f[k+0]-1),f[k+1]>1&&(f[k+1]-=f[k+1]-1);C("usingTexture3d",u,"usingTexture",Fa);r("aTexture3d",u,"aTexture",2,fd);d.bufferData(d.ARRAY_BUFFER, new I(f),d.STREAM_DRAW)}d.drawArrays(a,0,b.length/3);d.disable(d.POLYGON_OFFSET_FILL)};G.prototype.endShape=function(b){if(m.length!==0){var b=b===c.CLOSE,l=[],k=[],f=[],g=[],e;Rb=!0;var i,j,n=m.length;for(i=0;i3){l=[];k=1-Zb;d.beginPath();d.moveTo(m[1][0],m[1][1]);for(i=1;i+22){d.beginPath();d.moveTo(m[0][0],m[0][1]); d.lineTo(m[1][0],m[1][1]);d.lineTo(m[2][0],m[2][1]);U&&(a.fill(m[2][5]),Z());O&&(a.stroke(m[2][6]),la());d.closePath();for(i=3;i3)for(i=0;i+12)for(j=0;j+22)for(j=0;j+22){for(j=0;j<3;j++){i=m[j];for(n=0;n<3;n++)b.push(i[n])}for(j=0;j<3;j++){i=m[j];for(n=9;n<13;n++)g.push(i[n])}O&&Ka(b,"LINE_LOOP",g);for(j=2;j+13){for(j=0;j<2;j++){i=m[j];for(n=0;n<3;n++)b.push(i[n])}for(j=0;j<2;j++){i=m[j];for(n=9;n<13;n++)g.push(i[n])}Ka(b,"LINE_STRIP",g);h>4&&h%2>0&&(k.splice(k.length-3),m.pop());for(j=0;j+33){var g=wa[qa-4][0],e=wa[qa-4][1],i=wa[qa-4][2],j=wa[qa-3][0],n=wa[qa-3][1],h=wa[qa-3][2],m=wa[qa-2][0],q=wa[qa-2][1],o=wa[qa-2][2],p=wa[qa-1][0],r=wa[qa-1][1],s=wa[qa-1][2],b=j,c=n,d=h,t=Fb.array(),f=t[4]*g+t[5]*j+t[6]*m+t[7]*p,u=t[8]*g+t[9]*j+t[10]*m+t[11]*p,g=t[12]*g+t[13]*j+t[14]*m+t[15]*p,j=t[4]*e+t[5]*n+t[6]*q+t[7]*r,m=t[8]*e+t[9]*n+t[10]*q+t[11]*r,e= t[12]*e+t[13]*n+t[14]*q+t[15]*r,n=t[4]*i+t[5]*h+t[6]*o+t[7]*s,q=t[8]*i+t[9]*h+t[10]*o+t[11]*s,i=t[12]*i+t[13]*h+t[14]*o+t[15]*s;a.vertex(b,c,d);for(h=0;hc.TWO_PI)g=0,e=c.TWO_PI;k/=2;f/=2;b+=k;d+=f;var g=0|-0.5+g/c.TWO_PI*c.SINCOS_LENGTH,e=0|0.5+e/c.TWO_PI*c.SINCOS_LENGTH,i,j;if(U){var n=O;O=!1;a.beginShape();a.vertex(b,d);for(j=i=g;i=c.SINCOS_LENGTH&&(j-=c.SINCOS_LENGTH),a.vertex(b+Mb[j]*k,d+Lb[j]*f);a.endShape(c.CLOSE);O=n}if(O){n= U;U=!1;a.beginShape();for(j=i=g;i=c.SINCOS_LENGTH&&(j-=c.SINCOS_LENGTH),a.vertex(b+Mb[j]*k,d+Lb[j]*f);j=e%c.SINCOS_LENGTH;a.vertex(b+Mb[j]*k,d+Lb[j]*f);a.endShape();U=n}}};G.prototype.line=function(b,c,e,f){if(b===e&&c===f)a.point(b,c);else if((b===e||c===f)&&da<=1&&O&&aa.options.crispLines){var g;if(b===e){c>f&&(g=c,c=f,f=g);for(;c<=f;++c)a.set(b,c,ma)}else{b>e&&(g=b,b=e,e=g);for(;b<=e;++b)a.set(b,c,ma)}}else O&&(d.beginPath(),d.moveTo(b||0,c||0),d.lineTo(e||0,f||0),la(),d.closePath())}; L.prototype.line=function(){var b,c,e,f,g,h;arguments.length===6?(b=arguments[0],c=arguments[1],e=arguments[2],f=arguments[3],g=arguments[4],h=arguments[5]):arguments.length===4&&(b=arguments[0],c=arguments[1],e=0,f=arguments[2],g=arguments[3],h=0);b===f&&c===g&&e===h?a.point(b,c,e):(b=[b,c,e,f,g,h],c=new E,c.scale(1,-1,1),c.apply(V.array()),c.transpose(),da>0&&O&&(d.useProgram(D),v("model2d",D,"model",!1,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),v("view2d",D,"view",!1,c.array()),s("color2d",D,"color",na), C("picktype2d",D,"picktype",0),d.lineWidth(da),r("vertex2d",D,"Vertex",3,Mc),N("aTextureCoord2d",D,"aTextureCoord"),d.bufferData(d.ARRAY_BUFFER,new I(b),d.STREAM_DRAW),d.drawArrays(d.LINES,0,2)))};G.prototype.bezier=function(){if(arguments.length!==8)throw"You must use 8 parameters for bezier() in 2D mode";a.beginShape();a.vertex(arguments[0],arguments[1]);a.bezierVertex(arguments[2],arguments[3],arguments[4],arguments[5],arguments[6],arguments[7]);a.endShape()};L.prototype.bezier=function(){if(arguments.length!== 12)throw"You must use 12 parameters for bezier() in 3D mode";a.beginShape();a.vertex(arguments[0],arguments[1],arguments[2]);a.bezierVertex(arguments[3],arguments[4],arguments[5],arguments[6],arguments[7],arguments[8],arguments[9],arguments[10],arguments[11]);a.endShape()};a.bezierDetail=function(a){Ba=a};a.bezierPoint=function(a,c,d,f,g){return(1-g)*(1-g)*(1-g)*a+3*(1-g)*(1-g)*g*c+3*(1-g)*g*g*d+g*g*g*f};a.bezierTangent=function(a,c,d,f,g){return 3*g*g*(-a+3*c-3*d+f)+6*g*(a-2*c+d)+3*(-a+c)};a.curvePoint= function(a,c,d,f,g){return 0.5*(2*c+(-a+d)*g+(2*a-5*c+4*d-f)*g*g+(-a+3*c-3*d+f)*g*g*g)};a.curveTangent=function(a,c,d,f,g){return 0.5*(-a+d+2*(2*a-5*c+4*d-f)*g+3*(-a+3*c-3*d+f)*g*g)};a.triangle=function(b,d,e,f,g,h){a.beginShape(c.TRIANGLES);a.vertex(b,d,0);a.vertex(e,f,0);a.vertex(g,h,0);a.endShape()};a.quad=function(b,d,e,f,g,h,i,j){a.beginShape(c.QUADS);a.vertex(b,d,0);a.vertex(e,f,0);a.vertex(g,h,0);a.vertex(i,j,0);a.endShape()};G.prototype.rect=function(b,l,k,f){if(k||f)if(O&&!U&&da<=1&&aa.options.crispLines){var g, h=b+k-1,i=l+f-1;for(g=0;g0&&O&&(d.useProgram(D),v("model2d", D,"model",!1,g.array()),v("view2d",D,"view",!1,c.array()),s("color2d",D,"color",na),C("picktype2d",D,"picktype",0),r("vertex2d",D,"Vertex",3,pc),N("aTextureCoord2d",D,"aTextureCoord"),d.lineWidth(da),d.drawArrays(d.LINE_LOOP,0,Uc.length/3));U&&(d.useProgram(u),v("model3d",u,"model",!1,g.array()),v("view3d",u,"view",!1,c.array()),d.enable(d.POLYGON_OFFSET_FILL),d.polygonOffset(1,1),s("color3d",u,"color",pa),M>0?(a=new E,a.set(c),c=new E,c.set(g),a.mult(c),g=new E,g.set(a),g.invert(),g.transpose(), v("normalTransform3d",u,"normalTransform",!1,g.array()),r("normal3d",u,"Normal",3,Lc)):N("normal3d",u,"Normal"),r("vertex3d",u,"Vertex",3,pc),d.drawArrays(d.TRIANGLE_FAN,0,Uc.length/3),d.disable(d.POLYGON_OFFSET_FILL))};H.prototype.ellipse=function(a,d,e,f){a=a||0;d=d||0;if(!(e<=0&&f<=0)){ka===c.RADIUS&&(e*=2,f*=2);ka===c.CORNERS&&(e-=a,f-=d);if(ka===c.CORNER||ka===c.CORNERS)a+=e/2,d+=f/2;return{x:a,y:d,width:e,height:f}}};G.prototype.ellipse=function(b,l,e,f){var g=H.prototype.ellipse.apply(this, arguments);if(g)if(b=g.x,l=g.y,e=g.width,f=g.height,e===f)d.beginPath(),d.arc(b-0,l-0,e/2,0,c.TWO_PI,!1),Z(),la(),d.closePath();else{var g=e/2,h=f/2,i=0.5522847498307933*g,j=0.5522847498307933*h;a.beginShape();a.vertex(b+g,l);a.bezierVertex(b+g,l-j,b+i,l-h,b,l-h);a.bezierVertex(b-i,l-h,b-g,l-j,b-g,l);a.bezierVertex(b-g,l+j,b-i,l+h,b,l+h);a.bezierVertex(b+i,l+h,b+g,l+j,b+g,l);a.endShape()}};L.prototype.ellipse=function(b,c,d,f){var g=H.prototype.ellipse.apply(this,arguments);if(g){var b=g.x,c=g.y, d=g.width,f=g.height,g=d/2,e=f/2,i=0.5522847498307933*g,j=0.5522847498307933*e;a.beginShape();a.vertex(b+g,c);a.bezierVertex(b+g,c-j,0,b+i,c-e,0,b,c-e,0);a.bezierVertex(b-i,c-e,0,b-g,c-j,0,b-g,c,0);a.bezierVertex(b-g,c+j,0,b-i,c+e,0,b,c+e,0);a.bezierVertex(b+i,c+e,0,b+g,c+j,0,b+g,c,0);a.endShape();if(U){var j=i=0,n;for(n=0;n>>16;a.imageData.data[f+1]=(d&c.GREEN_MASK)>>>8;a.imageData.data[f+2]=d&c.BLUE_MASK;a.imageData.data[f+3]=(d&c.ALPHA_MASK)>>>24}}(this),set:function(a){if(this.isRemote)throw"Image is loaded remotely. Cannot set pixels.";else for(var b= 0,c=a.length;b=0&&l>=0&&l=0&&c>=0&&ckd&&Ca()):e instanceof La&&a.image(e,b,c);else if(arguments.length===4)if(f.isRemote)throw"Image is loaded remotely. Cannot set x,y."; else{var g=a.color.toArray(e),h=c*f.width*4+b*4,i=f.imageData.data;i[h]=g[0];i[h+1]=g[1];i[h+2]=g[2];i[h+3]=g[3]}};a.imageData={};a.pixels={getLength:function(){return a.imageData.data.length?a.imageData.data.length/4:0},getPixel:function(b){b*=4;return a.imageData.data[b+3]<<24&4278190080|a.imageData.data[b+0]<<16&16711680|a.imageData.data[b+1]<<8&65280|a.imageData.data[b+2]&255},setPixel:function(b,c){var d=b*4;a.imageData.data[d+0]=(c&16711680)>>>16;a.imageData.data[d+1]=(c&65280)>>>8;a.imageData.data[d+ 2]=c&255;a.imageData.data[d+3]=(c&4278190080)>>>24},set:function(a){for(var c=0,d=a.length;c0&&H.prototype.background.apply(this,arguments);db instanceof La?(d.save(),d.setTransform(1, 0,0,1,0,0),a.image(db,0,0)):(d.save(),d.setTransform(1,0,0,1,0,0),aa.options.isTransparent&&d.clearRect(0,0,a.width,a.height),d.fillStyle=a.color.toString(db),d.fillRect(0,0,a.width,a.height),Ia=!0);Xb()};L.prototype.background=function(){arguments.length>0&&H.prototype.background.apply(this,arguments);var b=a.color.toGLArray(db);d.clearColor(b[0],b[1],b[2],b[3]);d.clear(d.COLOR_BUFFER_BIT|d.DEPTH_BUFFER_BIT)};G.prototype.image=function(a,c,e,f,g){if(a.width>0){var h=vc(c||0,e||0,f||a.width,g||a.height, arguments.length<4);if(a.sourceImg&&ob===null&&!a.__mask){var i=a.sourceImg;d.drawImage(i,0,0,i.width,i.height,h.x,h.y,h.w,h.h)}else{i=a.toImageData();if(a.__mask){var j,n;if(a.__mask instanceof La){var m=a.__mask.toImageData();j=2;for(n=a.width*a.height*4;j0&&(f=f||b.width, e=e||b.height,a.beginShape(a.QUADS),a.texture(b.externals.canvas),a.vertex(c,d,0,0,0),a.vertex(c,d+e,0,0,e),a.vertex(c+f,d+e,0,f,e),a.vertex(c+f,d,0,f,0),a.endShape())};a.tint=function(){var b=a.color.apply(this,arguments),c=a.red(b)/ja,d=a.green(b)/z,f=a.blue(b)/xa,e=a.alpha(b)/ea;ob=function(a){for(var b=a.data,a=4*a.width*a.height,j=0;j=i&&(m=d),p<0&&(p=0),o>=f&&(o=d),p=c.pixels.getPixel(p),q=c.pixels.getPixel(q),o=c.pixels.getPixel(o),m=c.pixels.getPixel(m), j=77*(j>>16&255)+151*(j>>8&255)+28*(j&255),s=77*(q>>16&255)+151*(q>>8&255)+28*(q&255),r=77*(m>>16&255)+151*(m>>8&255)+28*(m&255),u=77*(p>>16&255)+151*(p>>8&255)+28*(p&255),t=77*(o>>16&255)+151*(o>>8&255)+28*(o&255),s=i&&(m=d),p<0&&(p=0),o>=f&&(o=d),p=c.pixels.getPixel(p),q=c.pixels.getPixel(q),o=c.pixels.getPixel(o),m=c.pixels.getPixel(m), j=77*(j>>16&255)+151*(j>>8&255)+28*(j&255),s=77*(q>>16&255)+151*(q>>8&255)+28*(q&255),r=77*(m>>16&255)+151*(m>>8&255)+28*(m&255),u=77*(p>>16&255)+151*(p>>8&255)+28*(p&255),t=77*(o>>16&255)+151*(o>>8&255)+28*(o&255),s>j&&(n=q,j=s),r>j&&(n=m,j=r),u>j&&(n=p,j=u),t>j&&(n=o),e[d++]=n}c.pixels.set(e)};a.filter=function(b,d,e){var f,g,h,i;arguments.length===3?(e.loadPixels(),f=e):(a.loadPixels(),f=a);d===p&&(d=null);if(f.isRemote)throw"Image is loaded remotely. Cannot filter image.";else{var j=f.pixels.getLength(); switch(b){case c.BLUR:var n=d||1,m=f,q,r,o,s,u,v,t,w,x;h=m.pixels.getLength();i=new I(h);j=new I(h);g=new I(h);h=new I(h);var B=0,J,C,z,n=a.floor(n*3.5),y,n=n<1?1:n<248?n:248;if(a.shared.blurRadius!==n){a.shared.blurRadius=n;a.shared.blurKernelSize=1+(a.shared.blurRadius<<1);a.shared.blurKernel=new I(a.shared.blurKernelSize);var A=a.shared.blurKernel,E=a.shared.blurKernelSize;for(y=0;y=y)break;u=0}for(z=u;z=y)break;t=(v+B)*4;u=E[z];s+=u*D[t+3];q+=u*D[t];r+=u*D[t+1];o+=u*D[t+2];m+=u;v++}t=B+J;h[t]=s/m;i[t]=q/m;j[t]=r/m;g[t]=o/m}B+=y}B=0;w=-w;x=w*y;for(C=0;C=n)break;u=0;t=w;v=J+x}for(z=u;z=n)break;u=E[z];s+=u*h[v];q+=u*i[v];r+=u*j[v];o+=u*g[v];m+= u;t++;v+=y}t=(J+B)*4;D[t]=q/m;D[t+1]=r/m;D[t+2]=o/m;D[t+3]=s/m}B+=y;x+=y;w++}break;case c.GRAY:if(f.format===c.ALPHA){for(i=0;i>16&255)+151*(g>>8&255)+28*(g&255)>>8,f.pixels.setPixel(i,g&c.ALPHA_MASK|h<<16|h<<8|h);break;case c.INVERT:for(i=0;i255)throw"Levels must be between 2 and 255 for filter(POSTERIZE, levels)";h=g-1;for(i=0;i>16&255,n=f.pixels.getPixel(i)>>8&255,y=f.pixels.getPixel(i)&255,B=(B*g>>8)*255/h,n=(n*g>>8)*255/h,y=(y*g>>8)*255/h,f.pixels.setPixel(i,4278190080&f.pixels.getPixel(i)|B<<16|n<<8|y);break;case c.OPAQUE:for(i=0;i1)throw"Level must be between 0 and 1 for filter(THRESHOLD, level)"; g=a.floor(d*255);for(i=0;i>16,a.max((f.pixels.getPixel(i)&c.GREEN_MASK)>>8,f.pixels.getPixel(i)&c.BLUE_MASK)),f.pixels.setPixel(i,f.pixels.getPixel(i)&c.ALPHA_MASK|(hd&&(i=d)):(a=d+a-e,i>a&&(i=a));hf&&(j=f)):(c=f+c-h,j>c&&(j=c));return!(i<=0||j<=0)};a.filter_new_scanline=function(){a.shared.sX=a.shared.srcXOffset;a.shared.fracV=a.shared.srcYOffset&c.PREC_MAXVAL;a.shared.ifV=c.PREC_MAXVAL-a.shared.fracV;a.shared.v1=(a.shared.srcYOffset>>c.PRECISIONB)*a.shared.iw;a.shared.v2=e.min((a.shared.srcYOffset>>c.PRECISIONB)+1,a.shared.ih1)* a.shared.iw};a.filter_bilinear=function(){a.shared.fracU=a.shared.sX&c.PREC_MAXVAL;a.shared.ifU=c.PREC_MAXVAL-a.shared.fracU;a.shared.ul=a.shared.ifU*a.shared.ifV>>c.PRECISIONB;a.shared.ll=a.shared.ifU*a.shared.fracV>>c.PRECISIONB;a.shared.ur=a.shared.fracU*a.shared.ifV>>c.PRECISIONB;a.shared.lr=a.shared.fracU*a.shared.fracV>>c.PRECISIONB;a.shared.u1=a.shared.sX>>c.PRECISIONB;a.shared.u2=e.min(a.shared.u1+1,a.shared.iw1);var b=(a.shared.v1+a.shared.u1)*4,d=(a.shared.v1+a.shared.u2)*4,k=(a.shared.v2+ a.shared.u1)*4,f=(a.shared.v2+a.shared.u2)*4;a.shared.cUL=a.color.toInt(a.shared.srcBuffer[b],a.shared.srcBuffer[b+1],a.shared.srcBuffer[b+2],a.shared.srcBuffer[b+3]);a.shared.cUR=a.color.toInt(a.shared.srcBuffer[d],a.shared.srcBuffer[d+1],a.shared.srcBuffer[d+2],a.shared.srcBuffer[d+3]);a.shared.cLL=a.color.toInt(a.shared.srcBuffer[k],a.shared.srcBuffer[k+1],a.shared.srcBuffer[k+2],a.shared.srcBuffer[k+3]);a.shared.cLR=a.color.toInt(a.shared.srcBuffer[f],a.shared.srcBuffer[f+1],a.shared.srcBuffer[f+ 2],a.shared.srcBuffer[f+3]);a.shared.r=a.shared.ul*((a.shared.cUL&c.RED_MASK)>>16)+a.shared.ll*((a.shared.cLL&c.RED_MASK)>>16)+a.shared.ur*((a.shared.cUR&c.RED_MASK)>>16)+a.shared.lr*((a.shared.cLR&c.RED_MASK)>>16)<>>c.PRECISIONB&c.GREEN_MASK;a.shared.b=a.shared.ul*(a.shared.cUL&c.BLUE_MASK)+a.shared.ll* (a.shared.cLL&c.BLUE_MASK)+a.shared.ur*(a.shared.cUR&c.BLUE_MASK)+a.shared.lr*(a.shared.cLR&c.BLUE_MASK)>>>c.PRECISIONB;a.shared.a=a.shared.ul*((a.shared.cUL&c.ALPHA_MASK)>>>24)+a.shared.ll*((a.shared.cLL&c.ALPHA_MASK)>>>24)+a.shared.ur*((a.shared.cUR&c.ALPHA_MASK)>>>24)+a.shared.lr*((a.shared.cLR&c.ALPHA_MASK)>>>24)<=b.width&&(f=b.width-1); g>=b.height&&(g=b.height-1);f-=d;g-=k;q-=n;p-=m;if(!(q<=0||p<=0||f<=0||g<=0||n>=i||m>=j||d>=b.width||k>=b.height))switch(f=e.floor(f/q*c.PRECISIONF),g=e.floor(g/p*c.PRECISIONF),a.shared.srcXOffset=e.floor(n<0?-n*f:d*c.PRECISIONF),a.shared.srcYOffset=e.floor(m<0?-m*g:k*c.PRECISIONF),n<0&&(q+=n,n=0),m<0&&(p+=m,m=0),q=e.min(q,i-n),p=e.min(p,j-m),d=m*i+n,a.shared.srcBuffer=b.imageData.data,a.shared.iw=b.width,a.shared.iw1=b.width-1,a.shared.ih1=b.height-1,o){case c.BLEND:for(k=0;k":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[c]}}catch(d){w.debug(d)}};G.prototype.text$line=function(b, e,h,f,g){f=f=0;if(fa.glyph){f=a.glyphTable[fa.name];d.save();d.translate(e,h+S);(g===c.RIGHT||g===c.CENTER)&&f.width(b);e=1/f.units_per_em*S;d.scale(e,e);e=0;for(h=b.length;e0;)c.pop().$self=a};a.extendStaticMembers=function(a,c){qb(a,c)};a.extendInterfaceMembers=function(a,c){qb(a, c)};a.addMethod=function(a,c,d){if(a[c]){var f=d.length,e=a[c];a[c]=function(){return arguments.length===f?d.apply(this,arguments):e.apply(this,arguments)}}else a[c]=d};a.createJavaArray=function(b,c){var d=null;if(typeof c[0]==="number"){var f=0|c[0];if(c.length<=1){d=[];d.length=f;for(var e=0;ee&&(c=e-h);la.height=c/e*100+"%";T.paddingBottom=Z.clientHeight+"px"},Ra=[Y(e,"mousemove",function(c){if(Da)ib(x.innerHeight-c.clientY),ga.scrollTop=oa}),Y(e,"mouseup",function(){Da&&(Da=oa=!1)}),Y(sa,"dblclick",function(c){c.preventDefault();Ga?(ib(Ga),Ga=!1):(Ga=Z.clientHeight,la.height="0px")}),Y(sa,"mousedown",function(c){c.preventDefault();Da=!0;oa=ga.scrollTop}),Y(sa,"contextmenu",function(){Da=!1}),Y(Ca, "click",function(){ta()})];ta=function(){for(var e=Ra.length;e--;)ia.apply(c,Ra[e]);I.removeChild(Z);T.paddingBottom=Oa;ca(ga);ca(Z);c.log=ra};B(Z,p,ga,s,sa,w,Ca,r);Ca.title="Close Log";ya(Ca,e.createTextNode("\u2716"));sa.title="Double-click to toggle log minimization";I.insertBefore(Z,I.firstChild);c.log=function(c){hb===512?ga.removeChild(ga.firstChild):hb++;var h=ya(ga,e.createElement("div")),p=ya(h,e.createElement("div"));h.title=(new Date).toLocaleTimeString();B(h,N,p,v);ya(p,e.createTextNode(c)); ga.scrollTop=ga.scrollHeight};c.log(A);T.paddingBottom=Z.clientHeight+"px"}}():typeof print==="function"&&(c.log=print);return c}();w.logger=Hb;w.version="@VERSION@";w.lib={};w.registerLibrary=function(c,e){w.lib[c]=e;e.hasOwnProperty("init")&&e.init(sa)};w.instances=Oa;w.getInstanceById=function(c){return Oa[nc[c]]};w.Sketch=function(c){this.attachFunction=c;this.options={isTransparent:!1,crispLines:!1,pauseOnBlur:!1,globalKeyEvents:!1};this.params={};this.imageCache={pending:0,images:{},add:function(c){if(ta){var e= new Image;e.onload=function(c){return function(){c.pending--}}(this);this.pending++;this.images[c]=e;e.src=c}else this.images[c]=null}};this.fonts={template:function(){if(!ta)return null;var c=A.createElement("p");c.style.fontFamily="serif";c.style.fontSize="72px";c.style.visibility="hidden";c.innerHTML="abcmmmmmmmmmmlll";A.getElementsByTagName("body")[0].appendChild(c);return c}(),attempt:0,pending:function(){for(var c=!0,e=0;e=30){c=!0;for(e=0;e "+s);if(v===A)if(r.length===0)try{return new w(c,C.join("\n"))}catch(x){w.logger.log("Unable to execute pjs sketch: "+x)}else w.logger.log("Unable to load pjs sketch files:\n"+r.join("\n"))})}for(var C=[],r=[],A=e.length,v=0,x=0;x