PageSourceSearch

https://www.koffermarkt.com/koffer-schaumstoff-konfigurator/js/lib.min.js?rev=3

js koffermarkt.com collected 2026-10-06 20:43:51 UTC 394,893 bytes, 800 lines download raw bytes

1!function(e,n){"use strict";function t(e,n){var t={},r=Date.now||function(){return(new Date).getTime()};e.time||e.timeEnd||(e.time=function(e){if(e!==n&&null!==e){var o=e.toString();o in t||(t[o]=r())}},e.timeEnd=function(o){if(o!==n&&null!==o){var i=o.toString();if(i in t){var l=r()-t[i];delete t[i],e.log(i+": "+l+"ms")}}})}n&&n.log&&t(n),e.console||(e.console=n={}),n.log||(n.log=function(){}),n.dir||(n.dir=n.log),n.warn||(n.warn=n.log),n.error||(n.error=n.log),n.time||(n.time=n.log),n.timeEnd||(n.timeEnd=n.log)}(window,window.console),function(){"use strict";Object.assign||Object.defineProperty(Object,"assign",{enumerable:!1,configurable:!0,writable:!0,value:function(e){if(void 0===e||null===e)throw new TypeError("Cannot convert first argument to object");for(var n=Object(e),t=1;t<arguments.length;t++){var r=arguments[t];if(void 0!==r&&null!==r){r=Object(r);for(var o=Object.keys(Object(r)),i=0,l=o.length;l>i;i++){var c=o[i],a=Object.getOwnPropertyDescriptor(r,c);void 0!==a&&a.enumerable&&(n[c]=r[c])}}}return n}})}();
2
3(function(C){'use strict';function re(a){if(D(a))w(a.objectMaxDepth)&&(Wb.objectMaxDepth=Xb(a.objectMaxDepth)?a.objectMaxDepth:NaN),w(a.urlErrorParamsEnabled)&&Ga(a.urlErrorParamsEnabled)&&(Wb.urlErrorParamsEnabled=a.urlErrorParamsEnabled);else return Wb}function Xb(a){return W(a)&&0<a}function F(a,b){b=b||Error;return function(){var d=arguments[0],c;c="["+(a?a+":":"")+d+"] http://errors.angularjs.org/1.7.9/"+(a?a+"/":"")+d;for(d=1;d<arguments.length;d++){c=c+(1==d?"?":"&")+"p"+(d-1)+"=";var e=encodeURIComponent,
4f;f=arguments[d];f="function"==typeof f?f.toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof f?"undefined":"string"!=typeof f?JSON.stringify(f):f;c+=e(f)}return new b(c)}}function ya(a){if(null==a||$a(a))return!1;if(H(a)||A(a)||x&&a instanceof x)return!0;var b="length"in Object(a)&&a.length;return W(b)&&(0<=b&&b-1 in a||"function"===typeof a.item)}function r(a,b,d){var c,e;if(a)if(B(a))for(c in a)"prototype"!==c&&"length"!==c&&"name"!==c&&a.hasOwnProperty(c)&&b.call(d,a[c],c,a);else if(H(a)||
5ya(a)){var f="object"!==typeof a;c=0;for(e=a.length;c<e;c++)(f||c in a)&&b.call(d,a[c],c,a)}else if(a.forEach&&a.forEach!==r)a.forEach(b,d,a);else if(Nc(a))for(c in a)b.call(d,a[c],c,a);else if("function"===typeof a.hasOwnProperty)for(c in a)a.hasOwnProperty(c)&&b.call(d,a[c],c,a);else for(c in a)ta.call(a,c)&&b.call(d,a[c],c,a);return a}function Oc(a,b,d){for(var c=Object.keys(a).sort(),e=0;e<c.length;e++)b.call(d,a[c[e]],c[e]);return c}function Yb(a){return function(b,d){a(d,b)}}function se(){return++pb}
6function Zb(a,b,d){for(var c=a.$$hashKey,e=0,f=b.length;e<f;++e){var g=b[e];if(D(g)||B(g))for(var k=Object.keys(g),h=0,l=k.length;h<l;h++){var m=k[h],p=g[m];d&&D(p)?ha(p)?a[m]=new Date(p.valueOf()):ab(p)?a[m]=new RegExp(p):p.nodeName?a[m]=p.cloneNode(!0):$b(p)?a[m]=p.clone():"__proto__"!==m&&(D(a[m])||(a[m]=H(p)?[]:{}),Zb(a[m],[p],!0)):a[m]=p}}c?a.$$hashKey=c:delete a.$$hashKey;return a}function S(a){return Zb(a,Ha.call(arguments,1),!1)}function te(a){return Zb(a,Ha.call(arguments,1),!0)}function fa(a){return parseInt(a,
710)}function ac(a,b){return S(Object.create(a),b)}function E(){}function Ta(a){return a}function ia(a){return function(){return a}}function bc(a){return B(a.toString)&&a.toString!==la}function z(a){return"undefined"===typeof a}function w(a){return"undefined"!==typeof a}function D(a){return null!==a&&"object"===typeof a}function Nc(a){return null!==a&&"object"===typeof a&&!Pc(a)}function A(a){return"string"===typeof a}function W(a){return"number"===typeof a}function ha(a){return"[object Date]"===la.call(a)}
8function H(a){return Array.isArray(a)||a instanceof Array}function cc(a){switch(la.call(a)){case "[object Error]":return!0;
vendor: 165,450 bytes, lines 8-331
8case "[object Exception]":return!0;case "[object DOMException]":return!0;default:return a instanceof Error}}function B(a){return"function"===typeof a}function ab(a){return"[object RegExp]"===la.call(a)}function $a(a){return a&&a.window===a}function bb(a){return a&&a.$evalAsync&&a.$watch}function Ga(a){return"boolean"===typeof a}function ue(a){return a&&W(a.length)&&ve.test(la.call(a))}
9function $b(a){return!(!a||!(a.nodeName||a.prop&&a.attr&&a.find))}function we(a){var b={};a=a.split(",");var d;for(d=0;d<a.length;d++)b[a[d]]=!0;return b}function ua(a){return K(a.nodeName||a[0]&&a[0].nodeName)}function cb(a,b){var d=a.indexOf(b);0<=d&&a.splice(d,1);return d}function Ia(a,b,d){function c(a,b,c){c--;if(0>c)return"...";var d=b.$$hashKey,f;if(H(a)){f=0;for(var g=a.length;f<g;f++)b.push(e(a[f],c))}else if(Nc(a))for(f in a)b[f]=e(a[f],c);else if(a&&"function"===typeof a.hasOwnProperty)for(f in a)a.hasOwnProperty(f)&&
10(b[f]=e(a[f],c));else for(f in a)ta.call(a,f)&&(b[f]=e(a[f],c));d?b.$$hashKey=d:delete b.$$hashKey;return b}function e(a,b){if(!D(a))return a;var d=g.indexOf(a);if(-1!==d)return k[d];if($a(a)||bb(a))throw pa("cpws");var d=!1,e=f(a);void 0===e&&(e=H(a)?[]:Object.create(Pc(a)),d=!0);g.push(a);k.push(e);return d?c(a,e,b):e}function f(a){switch(la.call(a)){case "[object Int8Array]":case "[object Int16Array]":case "[object Int32Array]":case "[object Float32Array]":case "[object Float64Array]":case "[object Uint8Array]":case "[object Uint8ClampedArray]":case "[object Uint16Array]":case "[object Uint32Array]":return new a.constructor(e(a.buffer),
11a.byteOffset,a.length);case "[object ArrayBuffer]":if(!a.slice){var b=new ArrayBuffer(a.byteLength);(new Uint8Array(b)).set(new Uint8Array(a));return b}return a.slice(0);case "[object Boolean]":case "[object Number]":case "[object String]":case "[object Date]":return new a.constructor(a.valueOf());case "[object RegExp]":return b=new RegExp(a.source,a.toString().match(/[^/]*$/)[0]),b.lastIndex=a.lastIndex,b;case "[object Blob]":return new a.constructor([a],{type:a.type})}if(B(a.cloneNode))return a.cloneNode(!0)}
12var g=[],k=[];d=Xb(d)?d:NaN;if(b){if(ue(b)||"[object ArrayBuffer]"===la.call(b))throw pa("cpta");if(a===b)throw pa("cpi");H(b)?b.length=0:r(b,function(a,c){"$$hashKey"!==c&&delete b[c]});g.push(a);k.push(b);return c(a,b,d)}return e(a,d)}function dc(a,b){return a===b||a!==a&&b!==b}function va(a,b){if(a===b)return!0;if(null===a||null===b)return!1;if(a!==a&&b!==b)return!0;var d=typeof a,c;if(d===typeof b&&"object"===d)if(H(a)){if(!H(b))return!1;if((d=a.length)===b.length){for(c=0;c<d;c++)if(!va(a[c],
13b[c]))return!1;return!0}}else{if(ha(a))return ha(b)?dc(a.getTime(),b.getTime()):!1;if(ab(a))return ab(b)?a.toString()===b.toString():!1;if(bb(a)||bb(b)||$a(a)||$a(b)||H(b)||ha(b)||ab(b))return!1;d=T();for(c in a)if("$"!==c.charAt(0)&&!B(a[c])){if(!va(a[c],b[c]))return!1;d[c]=!0}for(c in b)if(!(c in d)&&"$"!==c.charAt(0)&&w(b[c])&&!B(b[c]))return!1;return!0}return!1}function db(a,b,d){return a.concat(Ha.call(b,d))}function Va(a,b){var d=2<arguments.length?Ha.call(arguments,2):[];return!B(b)||b instanceof
14RegExp?b:d.length?function(){return arguments.length?b.apply(a,db(d,arguments,0)):b.apply(a,d)}:function(){return arguments.length?b.apply(a,arguments):b.call(a)}}function Qc(a,b){var d=b;"string"===typeof a&&"$"===a.charAt(0)&&"$"===a.charAt(1)?d=void 0:$a(b)?d="$WINDOW":b&&C.document===b?d="$DOCUMENT":bb(b)&&(d="$SCOPE");return d}function eb(a,b){if(!z(a))return W(b)||(b=b?2:null),JSON.stringify(a,Qc,b)}function Rc(a){return A(a)?JSON.parse(a):a}function ec(a,b){a=a.replace(xe,"");var d=Date.parse("Jan 01, 1970 00:00:00 "+
15a)/6E4;return X(d)?b:d}function Sc(a,b){a=new Date(a.getTime());a.setMinutes(a.getMinutes()+b);return a}function fc(a,b,d){d=d?-1:1;var c=a.getTimezoneOffset();b=ec(b,c);return Sc(a,d*(b-c))}function za(a){a=x(a).clone().empty();var b=x("<div></div>").append(a).html();try{return a[0].nodeType===Pa?K(b):b.match(/^(<[^>]+>)/)[1].replace(/^<([\w-]+)/,function(a,b){return"<"+K(b)})}catch(d){return K(b)}}function Tc(a){try{return decodeURIComponent(a)}catch(b){}}function gc(a){var b={};r((a||"").split("&"),
16function(a){var c,e,f;a&&(e=a=a.replace(/\+/g,"%20"),c=a.indexOf("="),-1!==c&&(e=a.substring(0,c),f=a.substring(c+1)),e=Tc(e),w(e)&&(f=w(f)?Tc(f):!0,ta.call(b,e)?H(b[e])?b[e].push(f):b[e]=[b[e],f]:b[e]=f))});return b}function ye(a){var b=[];r(a,function(a,c){H(a)?r(a,function(a){b.push(ba(c,!0)+(!0===a?"":"="+ba(a,!0)))}):b.push(ba(c,!0)+(!0===a?"":"="+ba(a,!0)))});return b.length?b.join("&"):""}function hc(a){return ba(a,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function ba(a,
17b){return encodeURIComponent(a).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,b?"%20":"+")}function ze(a,b){var d,c,e=Qa.length;for(c=0;c<e;++c)if(d=Qa[c]+b,A(d=a.getAttribute(d)))return d;return null}function Ae(a,b){var d,c,e={};r(Qa,function(b){b+="app";!d&&a.hasAttribute&&a.hasAttribute(b)&&(d=a,c=a.getAttribute(b))});r(Qa,function(b){b+="app";var e;!d&&(e=a.querySelector("["+b.replace(":","\\:")+"]"))&&(d=e,c=e.getAttribute(b))});
18d&&(Be?(e.strictDi=null!==ze(d,"strict-di"),b(d,c?[c]:[],e)):C.console.error("AngularJS: disabling automatic bootstrap. <script> protocol indicates an extension, document.location.href does not match."))}function Uc(a,b,d){D(d)||(d={});d=S({strictDi:!1},d);var c=function(){a=x(a);if(a.injector()){var c=a[0]===C.document?"document":za(a);throw pa("btstrpd",c.replace(/</,"&lt;").replace(/>/,"&gt;"));}b=b||[];b.unshift(["$provide",function(b){b.value("$rootElement",a)}]);d.debugInfoEnabled&&b.push(["$compileProvider",
19function(a){a.debugInfoEnabled(!0)}]);b.unshift("ng");c=fb(b,d.strictDi);c.invoke(["$rootScope","$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector",d);c(b)(a)})}]);return c},e=/^NG_ENABLE_DEBUG_INFO!/,f=/^NG_DEFER_BOOTSTRAP!/;C&&e.test(C.name)&&(d.debugInfoEnabled=!0,C.name=C.name.replace(e,""));if(C&&!f.test(C.name))return c();C.name=C.name.replace(f,"");ca.resumeBootstrap=function(a){r(a,function(a){b.push(a)});return c()};B(ca.resumeDeferredBootstrap)&&
20ca.resumeDeferredBootstrap()}function Ce(){C.name="NG_ENABLE_DEBUG_INFO!"+C.name;C.location.reload()}function De(a){a=ca.element(a).injector();if(!a)throw pa("test");return a.get("$$testability")}function Vc(a,b){b=b||"_";return a.replace(Ee,function(a,c){return(c?b:"")+a.toLowerCase()})}function Fe(){var a;if(!Wc){var b=qb();(rb=z(b)?C.jQuery:b?C[b]:void 0)&&rb.fn.on?(x=rb,S(rb.fn,{scope:Wa.scope,isolateScope:Wa.isolateScope,controller:Wa.controller,injector:Wa.injector,inheritedData:Wa.inheritedData})):
21x=Y;a=x.cleanData;x.cleanData=function(b){for(var c,e=0,f;null!=(f=b[e]);e++)(c=(x._data(f)||{}).events)&&c.$destroy&&x(f).triggerHandler("$destroy");a(b)};ca.element=x;Wc=!0}}function gb(a,b,d){if(!a)throw pa("areq",b||"?",d||"required");return a}function sb(a,b,d){d&&H(a)&&(a=a[a.length-1]);gb(B(a),b,"not a function, got "+(a&&"object"===typeof a?a.constructor.name||"Object":typeof a));return a}function Ja(a,b){if("hasOwnProperty"===a)throw pa("badname",b);}function Ge(a,b,d){if(!b)return a;b=b.split(".");
22for(var c,e=a,f=b.length,g=0;g<f;g++)c=b[g],a&&(a=(e=a)[c]);return!d&&B(a)?Va(e,a):a}function tb(a){for(var b=a[0],d=a[a.length-1],c,e=1;b!==d&&(b=b.nextSibling);e++)if(c||a[e]!==b)c||(c=x(Ha.call(a,0,e))),c.push(b);return c||a}function T(){return Object.create(null)}function ic(a){if(null==a)return"";switch(typeof a){case "string":break;case "number":a=""+a;break;default:a=!bc(a)||H(a)||ha(a)?eb(a):a.toString()}return a}function He(a){function b(a,b,c){return a[b]||(a[b]=c())}var d=F("$injector"),
23c=F("ng");a=b(a,"angular",Object);a.$$minErr=a.$$minErr||F;return b(a,"module",function(){var a={};return function(f,g,k){var h={};if("hasOwnProperty"===f)throw c("badname","module");g&&a.hasOwnProperty(f)&&(a[f]=null);return b(a,f,function(){function a(b,c,d,f){f||(f=e);return function(){f[d||"push"]([b,c,arguments]);return t}}function b(a,c,d){d||(d=e);return function(b,e){e&&B(e)&&(e.$$moduleName=f);d.push([a,c,arguments]);return t}}if(!g)throw d("nomod",f);var e=[],n=[],s=[],G=a("$injector","invoke",
24"push",n),t={_invokeQueue:e,_configBlocks:n,_runBlocks:s,info:function(a){if(w(a)){if(!D(a))throw c("aobj","value");h=a;return this}return h},requires:g,name:f,provider:b("$provide","provider"),factory:b("$provide","factory"),service:b("$provide","service"),value:a("$provide","value"),constant:a("$provide","constant","unshift"),decorator:b("$provide","decorator",n),animation:b("$animateProvider","register"),filter:b("$filterProvider","register"),controller:b("$controllerProvider","register"),directive:b("$compileProvider",
25"directive"),component:b("$compileProvider","component"),config:G,run:function(a){s.push(a);return this}};k&&G(k);return t})}})}function ja(a,b){if(H(a)){b=b||[];for(var d=0,c=a.length;d<c;d++)b[d]=a[d]}else if(D(a))for(d in b=b||{},a)if("$"!==d.charAt(0)||"$"!==d.charAt(1))b[d]=a[d];return b||a}function Ie(a,b){var d=[];Xb(b)&&(a=ca.copy(a,null,b));return JSON.stringify(a,function(a,b){b=Qc(a,b);if(D(b)){if(0<=d.indexOf(b))return"...";d.push(b)}return b})}function Je(a){S(a,{errorHandlingConfig:re,
26bootstrap:Uc,copy:Ia,extend:S,merge:te,equals:va,element:x,forEach:r,injector:fb,noop:E,bind:Va,toJson:eb,fromJson:Rc,identity:Ta,isUndefined:z,isDefined:w,isString:A,isFunction:B,isObject:D,isNumber:W,isElement:$b,isArray:H,version:Ke,isDate:ha,callbacks:{$$counter:0},getTestability:De,reloadWithDebugInfo:Ce,$$minErr:F,$$csp:Aa,$$encodeUriSegment:hc,$$encodeUriQuery:ba,$$lowercase:K,$$stringify:ic,$$uppercase:ub});kc=He(C);kc("ng",["ngLocale"],["$provide",function(a){a.provider({$$sanitizeUri:Le});
27a.provider("$compile",Xc).directive({a:Me,input:Yc,textarea:Yc,form:Ne,script:Oe,select:Pe,option:Qe,ngBind:Re,ngBindHtml:Se,ngBindTemplate:Te,ngClass:Ue,ngClassEven:Ve,ngClassOdd:We,ngCloak:Xe,ngController:Ye,ngForm:Ze,ngHide:$e,ngIf:af,ngInclude:bf,ngInit:cf,ngNonBindable:df,ngPluralize:ef,ngRef:ff,ngRepeat:gf,ngShow:hf,ngStyle:jf,ngSwitch:kf,ngSwitchWhen:lf,ngSwitchDefault:mf,ngOptions:nf,ngTransclude:of,ngModel:pf,ngList:qf,ngChange:rf,pattern:Zc,ngPattern:Zc,required:$c,ngRequired:$c,minlength:ad,
28ngMinlength:ad,maxlength:bd,ngMaxlength:bd,ngValue:sf,ngModelOptions:tf}).directive({ngInclude:uf,input:vf}).directive(vb).directive(cd);a.provider({$anchorScroll:wf,$animate:xf,$animateCss:yf,$$animateJs:zf,$$animateQueue:Af,$$AnimateRunner:Bf,$$animateAsyncRun:Cf,$browser:Df,$cacheFactory:Ef,$controller:Ff,$document:Gf,$$isDocumentHidden:Hf,$exceptionHandler:If,$filter:dd,$$forceReflow:Jf,$interpolate:Kf,$interval:Lf,$$intervalFactory:Mf,$http:Nf,$httpParamSerializer:Of,$httpParamSerializerJQLike:Pf,
29$httpBackend:Qf,$xhrFactory:Rf,$jsonpCallbacks:Sf,$location:Tf,$log:Uf,$parse:Vf,$rootScope:Wf,$q:Xf,$$q:Yf,$sce:Zf,$sceDelegate:$f,$sniffer:ag,$$taskTrackerFactory:bg,$templateCache:cg,$templateRequest:dg,$$testability:eg,$timeout:fg,$window:gg,$$rAF:hg,$$jqLite:ig,$$Map:jg,$$cookieReader:kg})}]).info({angularVersion:"1.7.9"})}function wb(a,b){return b.toUpperCase()}function xb(a){return a.replace(lg,wb)}function lc(a){a=a.nodeType;return 1===a||!a||9===a}function ed(a,b){var d,c,e=b.createDocumentFragment(),
30f=[];if(mc.test(a)){d=e.appendChild(b.createElement("div"));c=(mg.exec(a)||["",""])[1].toLowerCase();c=oa[c]||oa._default;d.innerHTML=c[1]+a.replace(ng,"<$1></$2>")+c[2];for(c=c[0];c--;)d=d.lastChild;f=db(f,d.childNodes);d=e.firstChild;d.textContent=""}else f.push(b.createTextNode(a));e.textContent="";e.innerHTML="";r(f,function(a){e.appendChild(a)});return e}function Y(a){if(a instanceof Y)return a;var b;A(a)&&(a=U(a),b=!0);if(!(this instanceof Y)){if(b&&"<"!==a.charAt(0))throw nc("nosel");return new Y(a)}if(b){b=
31C.document;var d;a=(d=og.exec(a))?[b.createElement(d[1])]:(d=ed(a,b))?d.childNodes:[];oc(this,a)}else B(a)?fd(a):oc(this,a)}function pc(a){return a.cloneNode(!0)}function yb(a,b){!b&&lc(a)&&x.cleanData([a]);a.querySelectorAll&&x.cleanData(a.querySelectorAll("*"))}function gd(a){for(var b in a)return!1;return!0}function hd(a){var b=a.ng339,d=b&&Ka[b],c=d&&d.events,d=d&&d.data;d&&!gd(d)||c&&!gd(c)||(delete Ka[b],a.ng339=void 0)}function id(a,b,d,c){if(w(c))throw nc("offargs");var e=(c=zb(a))&&c.events,
32f=c&&c.handle;if(f){if(b){var g=function(b){var c=e[b];w(d)&&cb(c||[],d);w(d)&&c&&0<c.length||(a.removeEventListener(b,f),delete e[b])};r(b.split(" "),function(a){g(a);Ab[a]&&g(Ab[a])})}else for(b in e)"$destroy"!==b&&a.removeEventListener(b,f),delete e[b];hd(a)}}function qc(a,b){var d=a.ng339;if(d=d&&Ka[d])b?delete d.data[b]:d.data={},hd(a)}function zb(a,b){var d=a.ng339,d=d&&Ka[d];b&&!d&&(a.ng339=d=++pg,d=Ka[d]={events:{},data:{},handle:void 0});return d}function rc(a,b,d){if(lc(a)){var c,e=w(d),
33f=!e&&b&&!D(b),g=!b;a=(a=zb(a,!f))&&a.data;if(e)a[xb(b)]=d;else{if(g)return a;if(f)return a&&a[xb(b)];for(c in b)a[xb(c)]=b[c]}}}function Bb(a,b){return a.getAttribute?-1<(" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+b+" "):!1}function Cb(a,b){if(b&&a.setAttribute){var d=(" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g," "),c=d;r(b.split(" "),function(a){a=U(a);c=c.replace(" "+a+" "," ")});c!==d&&a.setAttribute("class",U(c))}}function Db(a,b){if(b&&a.setAttribute){var d=
34(" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g," "),c=d;r(b.split(" "),function(a){a=U(a);-1===c.indexOf(" "+a+" ")&&(c+=a+" ")});c!==d&&a.setAttribute("class",U(c))}}function oc(a,b){if(b)if(b.nodeType)a[a.length++]=b;else{var d=b.length;if("number"===typeof d&&b.window!==b){if(d)for(var c=0;c<d;c++)a[a.length++]=b[c]}else a[a.length++]=b}}function jd(a,b){return Eb(a,"$"+(b||"ngController")+"Controller")}function Eb(a,b,d){9===a.nodeType&&(a=a.documentElement);for(b=H(b)?b:[b];a;){for(var c=
350,e=b.length;c<e;c++)if(w(d=x.data(a,b[c])))return d;a=a.parentNode||11===a.nodeType&&a.host}}function kd(a){for(yb(a,!0);a.firstChild;)a.removeChild(a.firstChild)}function Fb(a,b){b||yb(a);var d=a.parentNode;d&&d.removeChild(a)}function qg(a,b){b=b||C;if("complete"===b.document.readyState)b.setTimeout(a);else x(b).on("load",a)}function fd(a){function b(){C.document.removeEventListener("DOMContentLoaded",b);C.removeEventListener("load",b);a()}"complete"===C.document.readyState?C.setTimeout(a):(C.document.addEventListener("DOMContentLoaded",
36b),C.addEventListener("load",b))}function ld(a,b){var d=Gb[b.toLowerCase()];return d&&md[ua(a)]&&d}function rg(a,b){var d=function(c,d){c.isDefaultPrevented=function(){return c.defaultPrevented};var f=b[d||c.type],g=f?f.length:0;if(g){if(z(c.immediatePropagationStopped)){var k=c.stopImmediatePropagation;c.stopImmediatePropagation=function(){c.immediatePropagationStopped=!0;c.stopPropagation&&c.stopPropagation();k&&k.call(c)}}c.isImmediatePropagationStopped=function(){return!0===c.immediatePropagationStopped};
37var h=f.specialHandlerWrapper||sg;1<g&&(f=ja(f));for(var l=0;l<g;l++)c.isImmediatePropagationStopped()||h(a,c,f[l])}};d.elem=a;return d}function sg(a,b,d){d.call(a,b)}function tg(a,b,d){var c=b.relatedTarget;c&&(c===a||ug.call(a,c))||d.call(a,b)}function ig(){this.$get=function(){return S(Y,{hasClass:function(a,b){a.attr&&(a=a[0]);return Bb(a,b)},addClass:function(a,b){a.attr&&(a=a[0]);return Db(a,b)},removeClass:function(a,b){a.attr&&(a=a[0]);return Cb(a,b)}})}}function La(a,b){var d=a&&a.$$hashKey;
38if(d)return"function"===typeof d&&(d=a.$$hashKey()),d;d=typeof a;return d="function"===d||"object"===d&&null!==a?a.$$hashKey=d+":"+(b||se)():d+":"+a}function nd(){this._keys=[];this._values=[];this._lastKey=NaN;this._lastIndex=-1}function od(a){a=Function.prototype.toString.call(a).replace(vg,"");return a.match(wg)||a.match(xg)}function yg(a){return(a=od(a))?"function("+(a[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}function fb(a,b){function d(a){return function(b,c){if(D(b))r(b,Yb(a));else return a(b,
39c)}}function c(a,b){Ja(a,"service");if(B(b)||H(b))b=n.instantiate(b);if(!b.$get)throw Ba("pget",a);return p[a+"Provider"]=b}function e(a,b){return function(){var c=t.invoke(b,this);if(z(c))throw Ba("undef",a);return c}}function f(a,b,d){return c(a,{$get:!1!==d?e(a,b):b})}function g(a){gb(z(a)||H(a),"modulesToLoad","not an array");var b=[],c;r(a,function(a){function d(a){var b,c;b=0;for(c=a.length;b<c;b++){var e=a[b],f=n.get(e[0]);f[e[1]].apply(f,e[2])}}if(!m.get(a)){m.set(a,!0);try{A(a)?(c=kc(a),
40t.modules[a]=c,b=b.concat(g(c.requires)).concat(c._runBlocks),d(c._invokeQueue),d(c._configBlocks)):B(a)?b.push(n.invoke(a)):H(a)?b.push(n.invoke(a)):sb(a,"module")}catch(e){throw H(a)&&(a=a[a.length-1]),e.message&&e.stack&&-1===e.stack.indexOf(e.message)&&(e=e.message+"\n"+e.stack),Ba("modulerr",a,e.stack||e.message||e);}}});return b}function k(a,c){function d(b,e){if(a.hasOwnProperty(b)){if(a[b]===h)throw Ba("cdep",b+" <- "+l.join(" <- "));return a[b]}try{return l.unshift(b),a[b]=h,a[b]=c(b,e),
41a[b]}catch(f){throw a[b]===h&&delete a[b],f;}finally{l.shift()}}function e(a,c,f){var g=[];a=fb.$$annotate(a,b,f);for(var h=0,k=a.length;h<k;h++){var l=a[h];if("string"!==typeof l)throw Ba("itkn",l);g.push(c&&c.hasOwnProperty(l)?c[l]:d(l,f))}return g}return{invoke:function(a,b,c,d){"string"===typeof c&&(d=c,c=null);c=e(a,c,d);H(a)&&(a=a[a.length-1]);d=a;if(Ca||"function"!==typeof d)d=!1;else{var f=d.$$ngIsClass;Ga(f)||(f=d.$$ngIsClass=/^class\b/.test(Function.prototype.toString.call(d)));d=f}return d?
42(c.unshift(null),new (Function.prototype.bind.apply(a,c))):a.apply(b,c)},instantiate:function(a,b,c){var d=H(a)?a[a.length-1]:a;a=e(a,b,c);a.unshift(null);return new (Function.prototype.bind.apply(d,a))},get:d,annotate:fb.$$annotate,has:function(b){return p.hasOwnProperty(b+"Provider")||a.hasOwnProperty(b)}}}b=!0===b;var h={},l=[],m=new Hb,p={$provide:{provider:d(c),factory:d(f),service:d(function(a,b){return f(a,["$injector",function(a){return a.instantiate(b)}])}),value:d(function(a,b){return f(a,
43ia(b),!1)}),constant:d(function(a,b){Ja(a,"constant");p[a]=b;s[a]=b}),decorator:function(a,b){var c=n.get(a+"Provider"),d=c.$get;c.$get=function(){var a=t.invoke(d,c);return t.invoke(b,null,{$delegate:a})}}}},n=p.$injector=k(p,function(a,b){ca.isString(b)&&l.push(b);throw Ba("unpr",l.join(" <- "));}),s={},G=k(s,function(a,b){var c=n.get(a+"Provider",b);return t.invoke(c.$get,c,void 0,a)}),t=G;p.$injectorProvider={$get:ia(G)};t.modules=n.modules=T();var N=g(a),t=G.get("$injector");t.strictDi=b;r(N,
44function(a){a&&t.invoke(a)});t.loadNewModules=function(a){r(g(a),function(a){a&&t.invoke(a)})};return t}function wf(){var a=!0;this.disableAutoScrolling=function(){a=!1};this.$get=["$window","$location","$rootScope",function(b,d,c){function e(a){var b=null;Array.prototype.some.call(a,function(a){if("a"===ua(a))return b=a,!0});return b}function f(a){if(a){a.scrollIntoView();var c;c=g.yOffset;B(c)?c=c():$b(c)?(c=c[0],c="fixed"!==b.getComputedStyle(c).position?0:c.getBoundingClientRect().bottom):W(c)||
45(c=0);c&&(a=a.getBoundingClientRect().top,b.scrollBy(0,a-c))}else b.scrollTo(0,0)}function g(a){a=A(a)?a:W(a)?a.toString():d.hash();var b;a?(b=k.getElementById(a))?f(b):(b=e(k.getElementsByName(a)))?f(b):"top"===a&&f(null):f(null)}var k=b.document;a&&c.$watch(function(){return d.hash()},function(a,b){a===b&&""===a||qg(function(){c.$evalAsync(g)})});return g}]}function hb(a,b){if(!a&&!b)return"";if(!a)return b;if(!b)return a;H(a)&&(a=a.join(" "));H(b)&&(b=b.join(" "));return a+" "+b}function zg(a){A(a)&&
46(a=a.split(" "));var b=T();r(a,function(a){a.length&&(b[a]=!0)});return b}function ra(a){return D(a)?a:{}}function Ag(a,b,d,c,e){function f(){qa=null;k()}function g(){t=y();t=z(t)?null:t;va(t,P)&&(t=P);N=P=t}function k(){var a=N;g();if(v!==h.url()||a!==t)v=h.url(),N=t,r(J,function(a){a(h.url(),t)})}var h=this,l=a.location,m=a.history,p=a.setTimeout,n=a.clearTimeout,s={},G=e(d);h.isMock=!1;h.$$completeOutstandingRequest=G.completeTask;h.$$incOutstandingRequestCount=G.incTaskCount;h.notifyWhenNoOutstandingRequests=
47G.notifyWhenNoPendingTasks;var t,N,v=l.href,jc=b.find("base"),qa=null,y=c.history?function(){try{return m.state}catch(a){}}:E;g();h.url=function(b,d,e){z(e)&&(e=null);l!==a.location&&(l=a.location);m!==a.history&&(m=a.history);if(b){var f=N===e;b=ga(b).href;if(v===b&&(!c.history||f))return h;var k=v&&Da(v)===Da(b);v=b;N=e;!c.history||k&&f?(k||(qa=b),d?l.replace(b):k?(d=l,e=b,f=e.indexOf("#"),e=-1===f?"":e.substr(f),d.hash=e):l.href=b,l.href!==b&&(qa=b)):(m[d?"replaceState":"pushState"](e,"",b),g());
48qa&&(qa=b);return h}return(qa||l.href).replace(/#$/,"")};h.state=function(){return t};var J=[],I=!1,P=null;h.onUrlChange=function(b){if(!I){if(c.history)x(a).on("popstate",f);x(a).on("hashchange",f);I=!0}J.push(b);return b};h.$$applicationDestroyed=function(){x(a).off("hashchange popstate",f)};h.$$checkUrlChange=k;h.baseHref=function(){var a=jc.attr("href");return a?a.replace(/^(https?:)?\/\/[^/]*/,""):""};h.defer=function(a,b,c){var d;b=b||0;c=c||G.DEFAULT_TASK_TYPE;G.incTaskCount(c);d=p(function(){delete s[d];
49G.completeTask(a,c)},b);s[d]=c;return d};h.defer.cancel=function(a){if(s.hasOwnProperty(a)){var b=s[a];delete s[a];n(a);G.completeTask(E,b);return!0}return!1}}function Df(){this.$get=["$window","$log","$sniffer","$document","$$taskTrackerFactory",function(a,b,d,c,e){return new Ag(a,c,b,d,e)}]}function Ef(){this.$get=function(){function a(a,c){function e(a){a!==p&&(n?n===a&&(n=a.n):n=a,f(a.n,a.p),f(a,p),p=a,p.n=null)}function f(a,b){a!==b&&(a&&(a.p=b),b&&(b.n=a))}if(a in b)throw F("$cacheFactory")("iid",
50a);var g=0,k=S({},c,{id:a}),h=T(),l=c&&c.capacity||Number.MAX_VALUE,m=T(),p=null,n=null;return b[a]={put:function(a,b){if(!z(b)){if(l<Number.MAX_VALUE){var c=m[a]||(m[a]={key:a});e(c)}a in h||g++;h[a]=b;g>l&&this.remove(n.key);return b}},get:function(a){if(l<Number.MAX_VALUE){var b=m[a];if(!b)return;e(b)}return h[a]},remove:function(a){if(l<Number.MAX_VALUE){var b=m[a];if(!b)return;b===p&&(p=b.p);b===n&&(n=b.n);f(b.n,b.p);delete m[a]}a in h&&(delete h[a],g--)},removeAll:function(){h=T();g=0;m=T();
51p=n=null},destroy:function(){m=k=h=null;delete b[a]},info:function(){return S({},k,{size:g})}}}var b={};a.info=function(){var a={};r(b,function(b,e){a[e]=b.info()});return a};a.get=function(a){return b[a]};return a}}function cg(){this.$get=["$cacheFactory",function(a){return a("templates")}]}function Xc(a,b){function d(a,b,c){var d=/^([@&]|[=<](\*?))(\??)\s*([\w$]*)$/,e=T();r(a,function(a,f){a=a.trim();if(a in p)e[f]=p[a];else{var g=a.match(d);if(!g)throw $("iscp",b,f,a,c?"controller bindings definition":
52"isolate scope definition");e[f]={mode:g[1][0],collection:"*"===g[2],optional:"?"===g[3],attrName:g[4]||f};g[4]&&(p[a]=e[f])}});return e}function c(a){var b=a.charAt(0);if(!b||b!==K(b))throw $("baddir",a);if(a!==a.trim())throw $("baddir",a);}function e(a){var b=a.require||a.controller&&a.name;!H(b)&&D(b)&&r(b,function(a,c){var d=a.match(l);a.substring(d[0].length)||(b[c]=d[0]+c)});return b}var f={},g=/^\s*directive:\s*([\w-]+)\s+(.*)$/,k=/(([\w-]+)(?::([^;]+))?;?)/,h=we("ngSrc,ngSrcset,src,srcset"),
53l=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,m=/^(on[a-z]+|formaction)$/,p=T();this.directive=function qa(b,d){gb(b,"name");Ja(b,"directive");A(b)?(c(b),gb(d,"directiveFactory"),f.hasOwnProperty(b)||(f[b]=[],a.factory(b+"Directive",["$injector","$exceptionHandler",function(a,c){var d=[];r(f[b],function(f,g){try{var h=a.invoke(f);B(h)?h={compile:ia(h)}:!h.compile&&h.link&&(h.compile=ia(h.link));h.priority=h.priority||0;h.index=g;h.name=h.name||b;h.require=e(h);var k=h,l=h.restrict;if(l&&(!A(l)||!/[EACM]/.test(l)))throw $("badrestrict",
54l,b);k.restrict=l||"EA";h.$$moduleName=f.$$moduleName;d.push(h)}catch(m){c(m)}});return d}])),f[b].push(d)):r(b,Yb(qa));return this};this.component=function y(a,b){function c(a){function e(b){return B(b)||H(b)?function(c,d){return a.invoke(b,this,{$element:c,$attrs:d})}:b}var f=b.template||b.templateUrl?b.template:"",g={controller:d,controllerAs:Bg(b.controller)||b.controllerAs||"$ctrl",template:e(f),templateUrl:e(b.templateUrl),transclude:b.transclude,scope:{},bindToController:b.bindings||{},restrict:"E",
55require:b.require};r(b,function(a,b){"$"===b.charAt(0)&&(g[b]=a)});return g}if(!A(a))return r(a,Yb(Va(this,y))),this;var d=b.controller||function(){};r(b,function(a,b){"$"===b.charAt(0)&&(c[b]=a,B(d)&&(d[b]=a))});c.$inject=["$injector"];return this.directive(a,c)};this.aHrefSanitizationWhitelist=function(a){return w(a)?(b.aHrefSanitizationWhitelist(a),this):b.aHrefSanitizationWhitelist()};this.imgSrcSanitizationWhitelist=function(a){return w(a)?(b.imgSrcSanitizationWhitelist(a),this):b.imgSrcSanitizationWhitelist()};
56var n=!0;this.debugInfoEnabled=function(a){return w(a)?(n=a,this):n};var s=!1;this.strictComponentBindingsEnabled=function(a){return w(a)?(s=a,this):s};var G=10;this.onChangesTtl=function(a){return arguments.length?(G=a,this):G};var t=!0;this.commentDirectivesEnabled=function(a){return arguments.length?(t=a,this):t};var N=!0;this.cssClassDirectivesEnabled=function(a){return arguments.length?(N=a,this):N};var v=T();this.addPropertySecurityContext=function(a,b,c){var d=a.toLowerCase()+"|"+b.toLowerCase();
57if(d in v&&v[d]!==c)throw $("ctxoverride",a,b,v[d],c);v[d]=c;return this};(function(){function a(b,c){r(c,function(a){v[a.toLowerCase()]=b})}a(V.HTML,["iframe|srcdoc","*|innerHTML","*|outerHTML"]);a(V.CSS,["*|style"]);a(V.URL,"area|href area|ping a|href a|ping blockquote|cite body|background del|cite input|src ins|cite q|cite".split(" "));a(V.MEDIA_URL,"audio|src img|src img|srcset source|src source|srcset track|src video|src video|poster".split(" "));a(V.RESOURCE_URL,"*|formAction applet|code applet|codebase base|href embed|src frame|src form|action head|profile html|manifest iframe|src link|href media|src object|codebase object|data script|src".split(" "))})();
58this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$sce","$animate",function(a,b,c,e,p,M,L,u,R){function q(){try{if(!--Ja)throw Ua=void 0,$("infchng",G);L.$apply(function(){for(var a=0,b=Ua.length;a<b;++a)try{Ua[a]()}catch(d){c(d)}Ua=void 0})}finally{Ja++}}function ma(a,b){if(!a)return a;if(!A(a))throw $("srcset",b,a.toString());for(var c="",d=U(a),e=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,e=/\s/.test(d)?e:/(,)/,d=d.split(e),e=Math.floor(d.length/
592),f=0;f<e;f++)var g=2*f,c=c+u.getTrustedMediaUrl(U(d[g])),c=c+(" "+U(d[g+1]));d=U(d[2*f]).split(/\s/);c+=u.getTrustedMediaUrl(U(d[0]));2===d.length&&(c+=" "+U(d[1]));return c}function w(a,b){if(b){var c=Object.keys(b),d,e,f;d=0;for(e=c.length;d<e;d++)f=c[d],this[f]=b[f]}else this.$attr={};this.$$element=a}function O(a,b,c){Fa.innerHTML="<span "+b+">";b=Fa.firstChild.attributes;var d=b[0];b.removeNamedItem(d.name);d.value=c;a.attributes.setNamedItem(d)}function sa(a,b){try{a.addClass(b)}catch(c){}}
60function da(a,b,c,d,e){a instanceof x||(a=x(a));var f=Xa(a,b,a,c,d,e);da.$$addScopeClass(a);var g=null;return function(b,c,d){if(!a)throw $("multilink");gb(b,"scope");e&&e.needsNewScope&&(b=b.$parent.$new());d=d||{};var h=d.parentBoundTranscludeFn,k=d.transcludeControllers;d=d.futureParentElement;h&&h.$$boundTransclude&&(h=h.$$boundTransclude);g||(g=(d=d&&d[0])?"foreignobject"!==ua(d)&&la.call(d).match(/SVG/)?"svg":"html":"html");d="html"!==g?x(ja(g,x("<div></div>").append(a).html())):c?Wa.clone.call(a):
61a;if(k)for(var l in k)d.data("$"+l+"Controller",k[l].instance);da.$$addScopeInfo(d,b);c&&c(d,b);f&&f(b,d,d,h);c||(a=f=null);return d}}function Xa(a,b,c,d,e,f){function g(a,c,d,e){var f,k,l,m,p,I,t;if(n)for(t=Array(c.length),m=0;m<h.length;m+=3)f=h[m],t[f]=c[f];else t=c;m=0;for(p=h.length;m<p;)k=t[h[m++]],c=h[m++],f=h[m++],c?(c.scope?(l=a.$new(),da.$$addScopeInfo(x(k),l)):l=a,I=c.transcludeOnThisElement?ka(a,c.transclude,e):!c.templateOnThisElement&&e?e:!e&&b?ka(a,b):null,c(f,l,k,d,I)):f&&f(a,k.childNodes,
62void 0,e)}for(var h=[],k=H(a)||a instanceof x,l,m,p,I,n,t=0;t<a.length;t++){l=new w;11===Ca&&ib(a,t,k);m=sc(a[t],[],l,0===t?d:void 0,e);(f=m.length?aa(m,a[t],l,b,c,null,[],[],f):null)&&f.scope&&da.$$addScopeClass(l.$$element);l=f&&f.terminal||!(p=a[t].childNodes)||!p.length?null:Xa(p,f?(f.transcludeOnThisElement||!f.templateOnThisElement)&&f.transclude:b);if(f||l)h.push(t,f,l),I=!0,n=n||f;f=null}return I?g:null}function ib(a,b,c){var d=a[b],e=d.parentNode,f;if(d.nodeType===Pa)for(;;){f=e?d.nextSibling:
63a[b+1];if(!f||f.nodeType!==Pa)break;d.nodeValue+=f.nodeValue;f.parentNode&&f.parentNode.removeChild(f);c&&f===a[b+1]&&a.splice(b+1,1)}}function ka(a,b,c){function d(e,f,g,h,k){e||(e=a.$new(!1,k),e.$$transcluded=!0);return b(e,f,{parentBoundTranscludeFn:c,transcludeControllers:g,futureParentElement:h})}var e=d.$$slots=T(),f;for(f in b.$$slots)e[f]=b.$$slots[f]?ka(a,b.$$slots[f],c):null;return d}function sc(a,b,d,e,f){var g=d.$attr,h;switch(a.nodeType){case 1:h=ua(a);X(b,wa(h),"E",e,f);for(var l,m,
64n,t,J,s=a.attributes,v=0,G=s&&s.length;v<G;v++){var P=!1,N=!1,r=!1,y=!1,u=!1,M;l=s[v];m=l.name;t=l.value;n=wa(m.toLowerCase());(J=n.match(Ra))?(r="Attr"===J[1],y="Prop"===J[1],u="On"===J[1],m=m.replace(pd,"").toLowerCase().substr(4+J[1].length).replace(/_(.)/g,function(a,b){return b.toUpperCase()})):(M=n.match(Sa))&&ca(M[1])&&(P=m,N=m.substr(0,m.length-5)+"end",m=m.substr(0,m.length-6));if(y||u)d[n]=t,g[n]=l.name,y?Ea(a,b,n,m):b.push(qd(p,L,c,n,m,!1));else{n=wa(m.toLowerCase());g[n]=m;if(r||!d.hasOwnProperty(n))d[n]=
65t,ld(a,n)&&(d[n]=!0);Ia(a,b,t,n,r);X(b,n,"A",e,f,P,N)}}"input"===h&&"hidden"===a.getAttribute("type")&&a.setAttribute("autocomplete","off");if(!Qa)break;g=a.className;D(g)&&(g=g.animVal);if(A(g)&&""!==g)for(;a=k.exec(g);)n=wa(a[2]),X(b,n,"C",e,f)&&(d[n]=U(a[3])),g=g.substr(a.index+a[0].length);break;case Pa:na(b,a.nodeValue);break;case 8:if(!Oa)break;F(a,b,d,e,f)}b.sort(ia);return b}function F(a,b,c,d,e){try{var f=g.exec(a.nodeValue);if(f){var h=wa(f[1]);X(b,h,"M",d,e)&&(c[h]=U(f[2]))}}catch(k){}}
66function V(a,b,c){var d=[],e=0;if(b&&a.hasAttribute&&a.hasAttribute(b)){do{if(!a)throw $("uterdir",b,c);1===a.nodeType&&(a.hasAttribute(b)&&e++,a.hasAttribute(c)&&e--);d.push(a);a=a.nextSibling}while(0<e)}else d.push(a);return x(d)}function Y(a,b,c){return function(d,e,f,g,h){e=V(e[0],b,c);return a(d,e,f,g,h)}}function Z(a,b,c,d,e,f){var g;return a?da(b,c,d,e,f):function(){g||(g=da(b,c,d,e,f),b=c=f=null);return g.apply(this,arguments)}}function aa(a,b,d,e,f,g,h,k,l){function m(a,b,c,d){if(a){c&&(a=
67Y(a,c,d));a.require=u.require;a.directiveName=Q;if(s===u||u.$$isolateScope)a=Aa(a,{isolateScope:!0});h.push(a)}if(b){c&&(b=Y(b,c,d));b.require=u.require;b.directiveName=Q;if(s===u||u.$$isolateScope)b=Aa(b,{isolateScope:!0});k.push(b)}}function p(a,e,f,g,l){function m(a,b,c,d){var e;bb(a)||(d=c,c=b,b=a,a=void 0);N&&(e=P);c||(c=N?Q.parent():Q);if(d){var f=l.$$slots[d];if(f)return f(a,b,e,c,R);if(z(f))throw $("noslot",d,za(Q));}else return l(a,b,e,c,R)}var n,u,L,y,G,P,M,Q;b===f?(g=d,Q=d.$$element):(Q=
68x(f),g=new w(Q,d));G=e;s?y=e.$new(!0):t&&(G=e.$parent);l&&(M=m,M.$$boundTransclude=l,M.isSlotFilled=function(a){return!!l.$$slots[a]});J&&(P=ea(Q,g,M,J,y,e,s));s&&(da.$$addScopeInfo(Q,y,!0,!(v&&(v===s||v===s.$$originalDirective))),da.$$addScopeClass(Q,!0),y.$$isolateBindings=s.$$isolateBindings,u=Da(e,g,y,y.$$isolateBindings,s),u.removeWatches&&y.$on("$destroy",u.removeWatches));for(n in P){u=J[n];L=P[n];var Cg=u.$$bindings.bindToController;L.instance=L();Q.data("$"+u.name+"Controller",L.instance);
69L.bindingInfo=Da(G,g,L.instance,Cg,u)}r(J,function(a,b){var c=a.require;a.bindToController&&!H(c)&&D(c)&&S(P[b].instance,W(b,c,Q,P))});r(P,function(a){var b=a.instance;if(B(b.$onChanges))try{b.$onChanges(a.bindingInfo.initialChanges)}catch(d){c(d)}if(B(b.$onInit))try{b.$onInit()}catch(e){c(e)}B(b.$doCheck)&&(G.$watch(function(){b.$doCheck()}),b.$doCheck());B(b.$onDestroy)&&G.$on("$destroy",function(){b.$onDestroy()})});n=0;for(u=h.length;n<u;n++)L=h[n],Ba(L,L.isolateScope?y:e,Q,g,L.require&&W(L.directiveName,
70L.require,Q,P),M);var R=e;s&&(s.template||null===s.templateUrl)&&(R=y);a&&a(R,f.childNodes,void 0,l);for(n=k.length-1;0<=n;n--)L=k[n],Ba(L,L.isolateScope?y:e,Q,g,L.require&&W(L.directiveName,L.require,Q,P),M);r(P,function(a){a=a.instance;B(a.$postLink)&&a.$postLink()})}l=l||{};for(var n=-Number.MAX_VALUE,t=l.newScopeDirective,J=l.controllerDirectives,s=l.newIsolateScopeDirective,v=l.templateDirective,L=l.nonTlbTranscludeDirective,G=!1,P=!1,N=l.hasElementTranscludeDirective,y=d.$$element=x(b),u,Q,
71M,R=e,q,ma=!1,Ib=!1,O,sa=0,A=a.length;sa<A;sa++){u=a[sa];var E=u.$$start,ib=u.$$end;E&&(y=V(b,E,ib));M=void 0;if(n>u.priority)break;if(O=u.scope)u.templateUrl||(D(O)?(ba("new/isolated scope",s||t,u,y),s=u):ba("new/isolated scope",s,u,y)),t=t||u;Q=u.name;if(!ma&&(u.replace&&(u.templateUrl||u.template)||u.transclude&&!u.$$tlb)){for(O=sa+1;ma=a[O++];)if(ma.transclude&&!ma.$$tlb||ma.replace&&(ma.templateUrl||ma.template)){Ib=!0;break}ma=!0}!u.templateUrl&&u.controller&&(J=J||T(),ba("'"+Q+"' controller",
72J[Q],u,y),J[Q]=u);if(O=u.transclude)if(G=!0,u.$$tlb||(ba("transclusion",L,u,y),L=u),"element"===O)N=!0,n=u.priority,M=y,y=d.$$element=x(da.$$createComment(Q,d[Q])),b=y[0],pa(f,Ha.call(M,0),b),R=Z(Ib,M,e,n,g&&g.name,{nonTlbTranscludeDirective:L});else{var ka=T();if(D(O)){M=C.document.createDocumentFragment();var Xa=T(),F=T();r(O,function(a,b){var c="?"===a.charAt(0);a=c?a.substring(1):a;Xa[a]=b;ka[b]=null;F[b]=c});r(y.contents(),function(a){var b=Xa[wa(ua(a))];b?(F[b]=!0,ka[b]=ka[b]||C.document.createDocumentFragment(),
73ka[b].appendChild(a)):M.appendChild(a)});r(F,function(a,b){if(!a)throw $("reqslot",b);});for(var K in ka)ka[K]&&(R=x(ka[K].childNodes),ka[K]=Z(Ib,R,e));M=x(M.childNodes)}else M=x(pc(b)).contents();y.empty();R=Z(Ib,M,e,void 0,void 0,{needsNewScope:u.$$isolateScope||u.$$newScope});R.$$slots=ka}if(u.template)if(P=!0,ba("template",v,u,y),v=u,O=B(u.template)?u.template(y,d):u.template,O=Na(O),u.replace){g=u;M=mc.test(O)?rd(ja(u.templateNamespace,U(O))):[];b=M[0];if(1!==M.length||1!==b.nodeType)throw $("tplrt",
74Q,"");pa(f,y,b);A={$attr:{}};O=sc(b,[],A);var Dg=a.splice(sa+1,a.length-(sa+1));(s||t)&&fa(O,s,t);a=a.concat(O).concat(Dg);ga(d,A);A=a.length}else y.html(O);if(u.templateUrl)P=!0,ba("template",v,u,y),v=u,u.replace&&(g=u),p=ha(a.splice(sa,a.length-sa),y,d,f,G&&R,h,k,{controllerDirectives:J,newScopeDirective:t!==u&&t,newIsolateScopeDirective:s,templateDirective:v,nonTlbTranscludeDirective:L}),A=a.length;else if(u.compile)try{q=u.compile(y,d,R);var X=u.$$originalDirective||u;B(q)?m(null,Va(X,q),E,ib):
75q&&m(Va(X,q.pre),Va(X,q.post),E,ib)}catch(ca){c(ca,za(y))}u.terminal&&(p.terminal=!0,n=Math.max(n,u.priority))}p.scope=t&&!0===t.scope;p.transcludeOnThisElement=G;p.templateOnThisElement=P;p.transclude=R;l.hasElementTranscludeDirective=N;return p}function W(a,b,c,d){var e;if(A(b)){var f=b.match(l);b=b.substring(f[0].length);var g=f[1]||f[3],f="?"===f[2];"^^"===g?c=c.parent():e=(e=d&&d[b])&&e.instance;if(!e){var h="$"+b+"Controller";e="^^"===g&&c[0]&&9===c[0].nodeType?null:g?c.inheritedData(h):c.data(h)}if(!e&&
76!f)throw $("ctreq",b,a);}else if(H(b))for(e=[],g=0,f=b.length;g<f;g++)e[g]=W(a,b[g],c,d);else D(b)&&(e={},r(b,function(b,f){e[f]=W(a,b,c,d)}));return e||null}function ea(a,b,c,d,e,f,g){var h=T(),k;for(k in d){var l=d[k],m={$scope:l===g||l.$$isolateScope?e:f,$element:a,$attrs:b,$transclude:c},p=l.controller;"@"===p&&(p=b[l.name]);m=M(p,m,!0,l.controllerAs);h[l.name]=m;a.data("$"+l.name+"Controller",m.instance)}return h}function fa(a,b,c){for(var d=0,e=a.length;d<e;d++)a[d]=ac(a[d],{$$isolateScope:b,
77$$newScope:c})}function X(b,c,e,g,h,k,l){if(c===h)return null;var m=null;if(f.hasOwnProperty(c)){h=a.get(c+"Directive");for(var p=0,n=h.length;p<n;p++)if(c=h[p],(z(g)||g>c.priority)&&-1!==c.restrict.indexOf(e)){k&&(c=ac(c,{$$start:k,$$end:l}));if(!c.$$bindings){var I=m=c,t=c.name,u={isolateScope:null,bindToController:null};D(I.scope)&&(!0===I.bindToController?(u.bindToController=d(I.scope,t,!0),u.isolateScope={}):u.isolateScope=d(I.scope,t,!1));D(I.bindToController)&&(u.bindToController=d(I.bindToController,
78t,!0));if(u.bindToController&&!I.controller)throw $("noctrl",t);m=m.$$bindings=u;D(m.isolateScope)&&(c.$$isolateBindings=m.isolateScope)}b.push(c);m=c}}return m}function ca(b){if(f.hasOwnProperty(b))for(var c=a.get(b+"Directive"),d=0,e=c.length;d<e;d++)if(b=c[d],b.multiElement)return!0;return!1}function ga(a,b){var c=b.$attr,d=a.$attr;r(a,function(d,e){"$"!==e.charAt(0)&&(b[e]&&b[e]!==d&&(d=d.length?d+(("style"===e?";":" ")+b[e]):b[e]),a.$set(e,d,!0,c[e]))});r(b,function(b,e){a.hasOwnProperty(e)||
79"$"===e.charAt(0)||(a[e]=b,"class"!==e&&"style"!==e&&(d[e]=c[e]))})}function ha(a,b,d,f,g,h,k,l){var m=[],p,n,t=b[0],u=a.shift(),J=ac(u,{templateUrl:null,transclude:null,replace:null,$$originalDirective:u}),s=B(u.templateUrl)?u.templateUrl(b,d):u.templateUrl,L=u.templateNamespace;b.empty();e(s).then(function(c){var e,I;c=Na(c);if(u.replace){c=mc.test(c)?rd(ja(L,U(c))):[];e=c[0];if(1!==c.length||1!==e.nodeType)throw $("tplrt",u.name,s);c={$attr:{}};pa(f,b,e);var v=sc(e,[],c);D(u.scope)&&fa(v,!0);a=
80v.concat(a);ga(d,c)}else e=t,b.html(c);a.unshift(J);p=aa(a,e,d,g,b,u,h,k,l);r(f,function(a,c){a===e&&(f[c]=b[0])});for(n=Xa(b[0].childNodes,g);m.length;){c=m.shift();I=m.shift();var y=m.shift(),P=m.shift(),v=b[0];if(!c.$$destroyed){if(I!==t){var G=I.className;l.hasElementTranscludeDirective&&u.replace||(v=pc(e));pa(y,x(I),v);sa(x(v),G)}I=p.transcludeOnThisElement?ka(c,p.transclude,P):P;p(n,c,v,f,I)}}m=null}).catch(function(a){cc(a)&&c(a)});return function(a,b,c,d,e){a=e;b.$$destroyed||(m?m.push(b,
81c,d,a):(p.transcludeOnThisElement&&(a=ka(b,p.transclude,e)),p(n,b,c,d,a)))}}function ia(a,b){var c=b.priority-a.priority;return 0!==c?c:a.name!==b.name?a.name<b.name?-1:1:a.index-b.index}function ba(a,b,c,d){function e(a){return a?" (module: "+a+")":""}if(b)throw $("multidir",b.name,e(b.$$moduleName),c.name,e(c.$$moduleName),a,za(d));}function na(a,c){var d=b(c,!0);d&&a.push({priority:0,compile:function(a){a=a.parent();var b=!!a.length;b&&da.$$addBindingClass(a);return function(a,c){var e=c.parent();
82b||da.$$addBindingClass(e);da.$$addBindingInfo(e,d.expressions);a.$watch(d,function(a){c[0].nodeValue=a})}}})}function ja(a,b){a=K(a||"html");switch(a){case "svg":case "math":var c=C.document.createElement("div");c.innerHTML="<"+a+">"+b+"</"+a+">";return c.childNodes[0].childNodes;default:return b}}function oa(a,b){if("srcdoc"===b)return u.HTML;if("src"===b||"ngSrc"===b)return-1===["img","video","audio","source","track"].indexOf(a)?u.RESOURCE_URL:u.MEDIA_URL;if("xlinkHref"===b)return"image"===a?u.MEDIA_URL:
83"a"===a?u.URL:u.RESOURCE_URL;if("form"===a&&"action"===b||"base"===a&&"href"===b||"link"===a&&"href"===b)return u.RESOURCE_URL;if("a"===a&&("href"===b||"ngHref"===b))return u.URL}function xa(a,b){var c=b.toLowerCase();return v[a+"|"+c]||v["*|"+c]}function ya(a){return ma(u.valueOf(a),"ng-prop-srcset")}function Ea(a,b,c,d){if(m.test(d))throw $("nodomevents");a=ua(a);var e=xa(a,d),f=Ta;"srcset"!==d||"img"!==a&&"source"!==a?e&&(f=u.getTrusted.bind(u,e)):f=ya;b.push({priority:100,compile:function(a,b){var e=
84p(b[c]),g=p(b[c],function(a){return u.valueOf(a)});return{pre:function(a,b){function c(){var g=e(a);b[0][d]=f(g)}c();a.$watch(g,c)}}}})}function Ia(a,c,d,e,f){var g=ua(a),k=oa(g,e),l=h[e]||f,p=b(d,!f,k,l);if(p){if("multiple"===e&&"select"===g)throw $("selmulti",za(a));if(m.test(e))throw $("nodomevents");c.push({priority:100,compile:function(){return{pre:function(a,c,f){c=f.$$observers||(f.$$observers=T());var g=f[e];g!==d&&(p=g&&b(g,!0,k,l),d=g);p&&(f[e]=p(a),(c[e]||(c[e]=[])).$$inter=!0,(f.$$observers&&
85f.$$observers[e].$$scope||a).$watch(p,function(a,b){"class"===e&&a!==b?f.$updateClass(a,b):f.$set(e,a)}))}}}})}}function pa(a,b,c){var d=b[0],e=b.length,f=d.parentNode,g,h;if(a)for(g=0,h=a.length;g<h;g++)if(a[g]===d){a[g++]=c;h=g+e-1;for(var k=a.length;g<k;g++,h++)h<k?a[g]=a[h]:delete a[g];a.length-=e-1;a.context===d&&(a.context=c);break}f&&f.replaceChild(c,d);a=C.document.createDocumentFragment();for(g=0;g<e;g++)a.appendChild(b[g]);x.hasData(d)&&(x.data(c,x.data(d)),x(d).off("$destroy"));x.cleanData(a.querySelectorAll("*"));
86for(g=1;g<e;g++)delete b[g];b[0]=c;b.length=1}function Aa(a,b){return S(function(){return a.apply(null,arguments)},a,b)}function Ba(a,b,d,e,f,g){try{a(b,d,e,f,g)}catch(h){c(h,za(d))}}function ra(a,b){if(s)throw $("missingattr",a,b);}function Da(a,c,d,e,f){function g(b,c,e){B(d.$onChanges)&&!dc(c,e)&&(Ua||(a.$$postDigest(q),Ua=[]),m||(m={},Ua.push(h)),m[b]&&(e=m[b].previousValue),m[b]=new Jb(e,c))}function h(){d.$onChanges(m);m=void 0}var k=[],l={},m;r(e,function(e,h){var m=e.attrName,n=e.optional,
87I,t,u,s;switch(e.mode){case "@":n||ta.call(c,m)||(ra(m,f.name),d[h]=c[m]=void 0);n=c.$observe(m,function(a){if(A(a)||Ga(a))g(h,a,d[h]),d[h]=a});c.$$observers[m].$$scope=a;I=c[m];A(I)?d[h]=b(I)(a):Ga(I)&&(d[h]=I);l[h]=new Jb(tc,d[h]);k.push(n);break;case "=":if(!ta.call(c,m)){if(n)break;ra(m,f.name);c[m]=void 0}if(n&&!c[m])break;t=p(c[m]);s=t.literal?va:dc;u=t.assign||function(){I=d[h]=t(a);throw $("nonassign",c[m],m,f.name);};I=d[h]=t(a);n=function(b){s(b,d[h])||(s(b,I)?u(a,b=d[h]):d[h]=b);return I=
88b};n.$stateful=!0;n=e.collection?a.$watchCollection(c[m],n):a.$watch(p(c[m],n),null,t.literal);k.push(n);break;case "<":if(!ta.call(c,m)){if(n)break;ra(m,f.name);c[m]=void 0}if(n&&!c[m])break;t=p(c[m]);var v=t.literal,L=d[h]=t(a);l[h]=new Jb(tc,d[h]);n=a[e.collection?"$watchCollection":"$watch"](t,function(a,b){if(b===a){if(b===L||v&&va(b,L))return;b=L}g(h,a,b);d[h]=a});k.push(n);break;case "&":n||ta.call(c,m)||ra(m,f.name);t=c.hasOwnProperty(m)?p(c[m]):E;if(t===E&&n)break;d[h]=function(b){return t(a,
89b)}}});return{initialChanges:l,removeWatches:k.length&&function(){for(var a=0,b=k.length;a<b;++a)k[a]()}}}var Ma=/^\w/,Fa=C.document.createElement("div"),Oa=t,Qa=N,Ja=G,Ua;w.prototype={$normalize:wa,$addClass:function(a){a&&0<a.length&&R.addClass(this.$$element,a)},$removeClass:function(a){a&&0<a.length&&R.removeClass(this.$$element,a)},$updateClass:function(a,b){var c=sd(a,b);c&&c.length&&R.addClass(this.$$element,c);(c=sd(b,a))&&c.length&&R.removeClass(this.$$element,c)},$set:function(a,b,d,e){var f=
90ld(this.$$element[0],a),g=td[a],h=a;f?(this.$$element.prop(a,b),e=f):g&&(this[g]=b,h=g);this[a]=b;e?this.$attr[a]=e:(e=this.$attr[a])||(this.$attr[a]=e=Vc(a,"-"));"img"===ua(this.$$element)&&"srcset"===a&&(this[a]=b=ma(b,"$set('srcset', value)"));!1!==d&&(null===b||z(b)?this.$$element.removeAttr(e):Ma.test(e)?f&&!1===b?this.$$element.removeAttr(e):this.$$element.attr(e,b):O(this.$$element[0],e,b));(a=this.$$observers)&&r(a[h],function(a){try{a(b)}catch(d){c(d)}})},$observe:function(a,b){var c=this,
91d=c.$$observers||(c.$$observers=T()),e=d[a]||(d[a]=[]);e.push(b);L.$evalAsync(function(){e.$$inter||!c.hasOwnProperty(a)||z(c[a])||b(c[a])});return function(){cb(e,b)}}};var Ka=b.startSymbol(),La=b.endSymbol(),Na="{{"===Ka&&"}}"===La?Ta:function(a){return a.replace(/\{\{/g,Ka).replace(/}}/g,La)},Ra=/^ng(Attr|Prop|On)([A-Z].*)$/,Sa=/^(.+)Start$/;da.$$addBindingInfo=n?function(a,b){var c=a.data("$binding")||[];H(b)?c=c.concat(b):c.push(b);a.data("$binding",c)}:E;da.$$addBindingClass=n?function(a){sa(a,
92"ng-binding")}:E;da.$$addScopeInfo=n?function(a,b,c,d){a.data(c?d?"$isolateScopeNoTemplate":"$isolateScope":"$scope",b)}:E;da.$$addScopeClass=n?function(a,b){sa(a,b?"ng-isolate-scope":"ng-scope")}:E;da.$$createComment=function(a,b){var c="";n&&(c=" "+(a||"")+": ",b&&(c+=b+" "));return C.document.createComment(c)};return da}]}function Jb(a,b){this.previousValue=a;this.currentValue=b}function wa(a){return a.replace(pd,"").replace(Eg,function(a,d,c){return c?d.toUpperCase():d})}function sd(a,b){var d=
93"",c=a.split(/\s+/),e=b.split(/\s+/),f=0;a:for(;f<c.length;f++){for(var g=c[f],k=0;k<e.length;k++)if(g===e[k])continue a;d+=(0<d.length?" ":"")+g}return d}function rd(a){a=x(a);var b=a.length;if(1>=b)return a;for(;b--;){var d=a[b];(8===d.nodeType||d.nodeType===Pa&&""===d.nodeValue.trim())&&Fg.call(a,b,1)}return a}function Bg(a,b){if(b&&A(b))return b;if(A(a)){var d=ud.exec(a);if(d)return d[3]}}function Ff(){var a={};this.has=function(b){return a.hasOwnProperty(b)};this.register=function(b,d){Ja(b,
94"controller");D(b)?S(a,b):a[b]=d};this.$get=["$injector",function(b){function d(a,b,d,g){if(!a||!D(a.$scope))throw F("$controller")("noscp",g,b);a.$scope[b]=d}return function(c,e,f,g){var k,h,l;f=!0===f;g&&A(g)&&(l=g);if(A(c)){g=c.match(ud);if(!g)throw vd("ctrlfmt",c);h=g[1];l=l||g[3];c=a.hasOwnProperty(h)?a[h]:Ge(e.$scope,h,!0);if(!c)throw vd("ctrlreg",h);sb(c,h,!0)}if(f)return f=(H(c)?c[c.length-1]:c).prototype,k=Object.create(f||null),l&&d(e,l,k,h||c.name),S(function(){var a=b.invoke(c,k,e,h);
95a!==k&&(D(a)||B(a))&&(k=a,l&&d(e,l,k,h||c.name));return k},{instance:k,identifier:l});k=b.instantiate(c,e,h);l&&d(e,l,k,h||c.name);return k}}]}function Gf(){this.$get=["$window",function(a){return x(a.document)}]}function Hf(){this.$get=["$document","$rootScope",function(a,b){function d(){e=c.hidden}var c=a[0],e=c&&c.hidden;a.on("visibilitychange",d);b.$on("$destroy",function(){a.off("visibilitychange",d)});return function(){return e}}]}function If(){this.$get=["$log",function(a){return function(b,
96d){a.error.apply(a,arguments)}}]}function uc(a){return D(a)?ha(a)?a.toISOString():eb(a):a}function Of(){this.$get=function(){return function(a){if(!a)return"";var b=[];Oc(a,function(a,c){null===a||z(a)||B(a)||(H(a)?r(a,function(a){b.push(ba(c)+"="+ba(uc(a)))}):b.push(ba(c)+"="+ba(uc(a))))});return b.join("&")}}}function Pf(){this.$get=function(){return function(a){function b(a,e,f){H(a)?r(a,function(a,c){b(a,e+"["+(D(a)?c:"")+"]")}):D(a)&&!ha(a)?Oc(a,function(a,c){b(a,e+(f?"":"[")+c+(f?"":"]"))}):
97(B(a)&&(a=a()),d.push(ba(e)+"="+(null==a?"":ba(uc(a)))))}if(!a)return"";var d=[];b(a,"",!0);return d.join("&")}}}function vc(a,b){if(A(a)){var d=a.replace(Gg,"").trim();if(d){var c=b("Content-Type"),c=c&&0===c.indexOf(wd),e;(e=c)||(e=(e=d.match(Hg))&&Ig[e[0]].test(d));if(e)try{a=Rc(d)}catch(f){if(!c)return a;throw Kb("baddata",a,f);}}}return a}function xd(a){var b=T(),d;A(a)?r(a.split("\n"),function(a){d=a.indexOf(":");var e=K(U(a.substr(0,d)));a=U(a.substr(d+1));e&&(b[e]=b[e]?b[e]+", "+a:a)}):D(a)&&
98r(a,function(a,d){var f=K(d),g=U(a);f&&(b[f]=b[f]?b[f]+", "+g:g)});return b}function yd(a){var b;return function(d){b||(b=xd(a));return d?(d=b[K(d)],void 0===d&&(d=null),d):b}}function zd(a,b,d,c){if(B(c))return c(a,b,d);r(c,function(c){a=c(a,b,d)});return a}function Nf(){var a=this.defaults={transformResponse:[vc],transformRequest:[function(a){return D(a)&&"[object File]"!==la.call(a)&&"[object Blob]"!==la.call(a)&&"[object FormData]"!==la.call(a)?eb(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},
99post:ja(wc),put:ja(wc),patch:ja(wc)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer",jsonpCallbackParam:"callback"},b=!1;this.useApplyAsync=function(a){return w(a)?(b=!!a,this):b};var d=this.interceptors=[],c=this.xsrfWhitelistedOrigins=[];this.$get=["$browser","$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector","$sce",function(e,f,g,k,h,l,m,p){function n(b){function c(a,b){for(var d=0,e=b.length;d<e;){var f=b[d++],g=b[d++];
100a=a.then(f,g)}b.length=0;return a}function d(a,b){var c,e={};r(a,function(a,d){B(a)?(c=a(b),null!=c&&(e[d]=c)):e[d]=a});return e}function f(a){var b=S({},a);b.data=zd(a.data,a.headers,a.status,g.transformResponse);a=a.status;return 200<=a&&300>a?b:l.reject(b)}if(!D(b))throw F("$http")("badreq",b);if(!A(p.valueOf(b.url)))throw F("$http")("badreq",b.url);var g=S({method:"get",transformRequest:a.transformRequest,transformResponse:a.transformResponse,paramSerializer:a.paramSerializer,jsonpCallbackParam:a.jsonpCallbackParam},
101b);g.headers=function(b){var c=a.headers,e=S({},b.headers),f,g,h,c=S({},c.common,c[K(b.method)]);a:for(f in c){g=K(f);for(h in e)if(K(h)===g)continue a;e[f]=c[f]}return d(e,ja(b))}(b);g.method=ub(g.method);g.paramSerializer=A(g.paramSerializer)?m.get(g.paramSerializer):g.paramSerializer;e.$$incOutstandingRequestCount("$http");var h=[],k=[];b=l.resolve(g);r(v,function(a){(a.request||a.requestError)&&h.unshift(a.request,a.requestError);(a.response||a.responseError)&&k.push(a.response,a.responseError)});
102b=c(b,h);b=b.then(function(b){var c=b.headers,d=zd(b.data,yd(c),void 0,b.transformRequest);z(d)&&r(c,function(a,b){"content-type"===K(b)&&delete c[b]});z(b.withCredentials)&&!z(a.withCredentials)&&(b.withCredentials=a.withCredentials);return s(b,d).then(f,f)});b=c(b,k);return b=b.finally(function(){e.$$completeOutstandingRequest(E,"$http")})}function s(c,d){function e(a){if(a){var c={};r(a,function(a,d){c[d]=function(c){function d(){a(c)}b?h.$applyAsync(d):h.$$phase?d():h.$apply(d)}});return c}}function k(a,
103c,d,e,f){function g(){m(c,a,d,e,f)}R&&(200<=a&&300>a?R.put(O,[a,c,xd(d),e,f]):R.remove(O));b?h.$applyAsync(g):(g(),h.$$phase||h.$apply())}function m(a,b,d,e,f){b=-1<=b?b:0;(200<=b&&300>b?L.resolve:L.reject)({data:a,status:b,headers:yd(d),config:c,statusText:e,xhrStatus:f})}function s(a){m(a.data,a.status,ja(a.headers()),a.statusText,a.xhrStatus)}function v(){var a=n.pendingRequests.indexOf(c);-1!==a&&n.pendingRequests.splice(a,1)}var L=l.defer(),u=L.promise,R,q,ma=c.headers,x="jsonp"===K(c.method),
104O=c.url;x?O=p.getTrustedResourceUrl(O):A(O)||(O=p.valueOf(O));O=G(O,c.paramSerializer(c.params));x&&(O=t(O,c.jsonpCallbackParam));n.pendingRequests.push(c);u.then(v,v);!c.cache&&!a.cache||!1===c.cache||"GET"!==c.method&&"JSONP"!==c.method||(R=D(c.cache)?c.cache:D(a.cache)?a.cache:N);R&&(q=R.get(O),w(q)?q&&B(q.then)?q.then(s,s):H(q)?m(q[1],q[0],ja(q[2]),q[3],q[4]):m(q,200,{},"OK","complete"):R.put(O,u));z(q)&&((q=jc(c.url)?g()[c.xsrfCookieName||a.xsrfCookieName]:void 0)&&(ma[c.xsrfHeaderName||a.xsrfHeaderName]=
105q),f(c.method,O,d,k,ma,c.timeout,c.withCredentials,c.responseType,e(c.eventHandlers),e(c.uploadEventHandlers)));return u}function G(a,b){0<b.length&&(a+=(-1===a.indexOf("?")?"?":"&")+b);return a}function t(a,b){var c=a.split("?");if(2<c.length)throw Kb("badjsonp",a);c=gc(c[1]);r(c,function(c,d){if("JSON_CALLBACK"===c)throw Kb("badjsonp",a);if(d===b)throw Kb("badjsonp",b,a);});return a+=(-1===a.indexOf("?")?"?":"&")+b+"=JSON_CALLBACK"}var N=k("$http");a.paramSerializer=A(a.paramSerializer)?m.get(a.paramSerializer):
106a.paramSerializer;var v=[];r(d,function(a){v.unshift(A(a)?m.get(a):m.invoke(a))});var jc=Jg(c);n.pendingRequests=[];(function(a){r(arguments,function(a){n[a]=function(b,c){return n(S({},c||{},{method:a,url:b}))}})})("get","delete","head","jsonp");(function(a){r(arguments,function(a){n[a]=function(b,c,d){return n(S({},d||{},{method:a,url:b,data:c}))}})})("post","put","patch");n.defaults=a;return n}]}function Rf(){this.$get=function(){return function(){return new C.XMLHttpRequest}}}function Qf(){this.$get=
107["$browser","$jsonpCallbacks","$document","$xhrFactory",function(a,b,d,c){return Kg(a,c,a.defer,b,d[0])}]}function Kg(a,b,d,c,e){function f(a,b,d){a=a.replace("JSON_CALLBACK",b);var f=e.createElement("script"),m=null;f.type="text/javascript";f.src=a;f.async=!0;m=function(a){f.removeEventListener("load",m);f.removeEventListener("error",m);e.body.removeChild(f);f=null;var g=-1,s="unknown";a&&("load"!==a.type||c.wasCalled(b)||(a={type:"error"}),s=a.type,g="error"===a.type?404:200);d&&d(g,s)};f.addEventListener("load",
108m);f.addEventListener("error",m);e.body.appendChild(f);return m}return function(e,k,h,l,m,p,n,s,G,t){function N(a){J="timeout"===a;qa&&qa();y&&y.abort()}function v(a,b,c,e,f,g){w(P)&&d.cancel(P);qa=y=null;a(b,c,e,f,g)}k=k||a.url();if("jsonp"===K(e))var q=c.createCallback(k),qa=f(k,q,function(a,b){var d=200===a&&c.getResponse(q);v(l,a,d,"",b,"complete");c.removeCallback(q)});else{var y=b(e,k),J=!1;y.open(e,k,!0);r(m,function(a,b){w(a)&&y.setRequestHeader(b,a)});y.onload=function(){var a=y.statusText||
109"",b="response"in y?y.response:y.responseText,c=1223===y.status?204:y.status;0===c&&(c=b?200:"file"===ga(k).protocol?404:0);v(l,c,b,y.getAllResponseHeaders(),a,"complete")};y.onerror=function(){v(l,-1,null,null,"","error")};y.ontimeout=function(){v(l,-1,null,null,"","timeout")};y.onabort=function(){v(l,-1,null,null,"",J?"timeout":"abort")};r(G,function(a,b){y.addEventListener(b,a)});r(t,function(a,b){y.upload.addEventListener(b,a)});n&&(y.withCredentials=!0);if(s)try{y.responseType=s}catch(I){if("json"!==
110s)throw I;}y.send(z(h)?null:h)}if(0<p)var P=d(function(){N("timeout")},p);else p&&B(p.then)&&p.then(function(){N(w(p.$$timeoutId)?"timeout":"abort")})}}function Kf(){var a="{{",b="}}";this.startSymbol=function(b){return b?(a=b,this):a};this.endSymbol=function(a){return a?(b=a,this):b};this.$get=["$parse","$exceptionHandler","$sce",function(d,c,e){function f(a){return"\\\\\\"+a}function g(c){return c.replace(p,a).replace(n,b)}function k(a,b,c,d){var e=a.$watch(function(a){e();return d(a)},b,c);return e}
111function h(f,h,n,p){function v(a){try{return a=n&&!r?e.getTrusted(n,a):e.valueOf(a),p&&!w(a)?a:ic(a)}catch(b){c(Ma.interr(f,b))}}var r=n===e.URL||n===e.MEDIA_URL;if(!f.length||-1===f.indexOf(a)){if(h)return;h=g(f);r&&(h=e.getTrusted(n,h));h=ia(h);h.exp=f;h.expressions=[];h.$$watchDelegate=k;return h}p=!!p;for(var q,y,J=0,I=[],P,Q=f.length,M=[],L=[],u;J<Q;)if(-1!==(q=f.indexOf(a,J))&&-1!==(y=f.indexOf(b,q+l)))J!==q&&M.push(g(f.substring(J,q))),J=f.substring(q+l,y),I.push(J),J=y+m,L.push(M.length),
112M.push("");else{J!==Q&&M.push(g(f.substring(J)));break}u=1===M.length&&1===L.length;var R=r&&u?void 0:v;P=I.map(function(a){return d(a,R)});if(!h||I.length){var x=function(a){for(var b=0,c=I.length;b<c;b++){if(p&&z(a[b]))return;M[L[b]]=a[b]}if(r)return e.getTrusted(n,u?M[0]:M.join(""));n&&1<M.length&&Ma.throwNoconcat(f);return M.join("")};return S(function(a){var b=0,d=I.length,e=Array(d);try{for(;b<d;b++)e[b]=P[b](a);return x(e)}catch(g){c(Ma.interr(f,g))}},{exp:f,expressions:I,$$watchDelegate:function(a,
113b){var c;return a.$watchGroup(P,function(d,e){var f=x(d);b.call(this,f,d!==e?c:f,a);c=f})}})}}var l=a.length,m=b.length,p=new RegExp(a.replace(/./g,f),"g"),n=new RegExp(b.replace(/./g,f),"g");h.startSymbol=function(){return a};h.endSymbol=function(){return b};return h}]}function Lf(){this.$get=["$$intervalFactory","$window",function(a,b){var d={},c=function(a){b.clearInterval(a);delete d[a]},e=a(function(a,c,e){a=b.setInterval(a,c);d[a]=e;return a},c);e.cancel=function(a){if(!a)return!1;if(!a.hasOwnProperty("$$intervalId"))throw Lg("badprom");
114if(!d.hasOwnProperty(a.$$intervalId))return!1;a=a.$$intervalId;var b=d[a],e=b.promise;e.$$state&&(e.$$state.pur=!0);b.reject("canceled");c(a);return!0};return e}]}function Mf(){this.$get=["$browser","$q","$$q","$rootScope",function(a,b,d,c){return function(e,f){return function(g,k,h,l){function m(){p?g.apply(null,n):g(s)}var p=4<arguments.length,n=p?Ha.call(arguments,4):[],s=0,G=w(l)&&!l,t=(G?d:b).defer(),r=t.promise;h=w(h)?h:0;r.$$intervalId=e(function(){G?a.defer(m):c.$evalAsync(m);t.notify(s++);
1150<h&&s>=h&&(t.resolve(s),f(r.$$intervalId));G||c.$apply()},k,t,G);return r}}}]}function Ad(a,b){var d=ga(a);b.$$protocol=d.protocol;b.$$host=d.hostname;b.$$port=fa(d.port)||Mg[d.protocol]||null}function Bd(a,b,d){if(Ng.test(a))throw jb("badpath",a);var c="/"!==a.charAt(0);c&&(a="/"+a);a=ga(a);for(var c=(c&&"/"===a.pathname.charAt(0)?a.pathname.substring(1):a.pathname).split("/"),e=c.length;e--;)c[e]=decodeURIComponent(c[e]),d&&(c[e]=c[e].replace(/\//g,"%2F"));d=c.join("/");b.$$path=d;b.$$search=gc(a.search);
116b.$$hash=decodeURIComponent(a.hash);b.$$path&&"/"!==b.$$path.charAt(0)&&(b.$$path="/"+b.$$path)}function xc(a,b){return a.slice(0,b.length)===b}function xa(a,b){if(xc(b,a))return b.substr(a.length)}function Da(a){var b=a.indexOf("#");return-1===b?a:a.substr(0,b)}function yc(a,b,d){this.$$html5=!0;d=d||"";Ad(a,this);this.$$parse=function(a){var d=xa(b,a);if(!A(d))throw jb("ipthprfx",a,b);Bd(d,this,!0);this.$$path||(this.$$path="/");this.$$compose()};this.$$normalizeUrl=function(a){return b+a.substr(1)};
117this.$$parseLinkUrl=function(c,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;w(f=xa(a,c))?(g=f,g=d&&w(f=xa(d,f))?b+(xa("/",f)||f):a+g):w(f=xa(b,c))?g=b+f:b===c+"/"&&(g=b);g&&this.$$parse(g);return!!g}}function zc(a,b,d){Ad(a,this);this.$$parse=function(c){var e=xa(a,c)||xa(b,c),f;z(e)||"#"!==e.charAt(0)?this.$$html5?f=e:(f="",z(e)&&(a=c,this.replace())):(f=xa(d,e),z(f)&&(f=e));Bd(f,this,!1);c=this.$$path;var e=a,g=/^\/[A-Z]:(\/.*)/;xc(f,e)&&(f=f.replace(e,""));g.exec(f)||(c=(f=g.exec(c))?
118f[1]:c);this.$$path=c;this.$$compose()};this.$$normalizeUrl=function(b){return a+(b?d+b:"")};this.$$parseLinkUrl=function(b,d){return Da(a)===Da(b)?(this.$$parse(b),!0):!1}}function Cd(a,b,d){this.$$html5=!0;zc.apply(this,arguments);this.$$parseLinkUrl=function(c,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;a===Da(c)?f=c:(g=xa(b,c))?f=a+d+g:b===c+"/"&&(f=b);f&&this.$$parse(f);return!!f};this.$$normalizeUrl=function(b){return a+d+b}}function Lb(a){return function(){return this[a]}}function Dd(a,
119b){return function(d){if(z(d))return this[a];this[a]=b(d);this.$$compose();return this}}function Tf(){var a="!",b={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(b){return w(b)?(a=b,this):a};this.html5Mode=function(a){if(Ga(a))return b.enabled=a,this;if(D(a)){Ga(a.enabled)&&(b.enabled=a.enabled);Ga(a.requireBase)&&(b.requireBase=a.requireBase);if(Ga(a.rewriteLinks)||A(a.rewriteLinks))b.rewriteLinks=a.rewriteLinks;return this}return b};this.$get=["$rootScope","$browser","$sniffer",
120"$rootElement","$window",function(d,c,e,f,g){function k(a,b){return a===b||ga(a).href===ga(b).href}function h(a,b,d){var e=m.url(),f=m.$$state;try{c.url(a,b,d),m.$$state=c.state()}catch(g){throw m.url(e),m.$$state=f,g;}}function l(a,b){d.$broadcast("$locationChangeSuccess",m.absUrl(),a,m.$$state,b)}var m,p;p=c.baseHref();var n=c.url(),s;if(b.enabled){if(!p&&b.requireBase)throw jb("nobase");s=n.substring(0,n.indexOf("/",n.indexOf("//")+2))+(p||"/");p=e.history?yc:Cd}else s=Da(n),p=zc;var r=s.substr(0,
121Da(s).lastIndexOf("/")+1);m=new p(s,r,"#"+a);m.$$parseLinkUrl(n,n);m.$$state=c.state();var t=/^\s*(javascript|mailto):/i;f.on("click",function(a){var e=b.rewriteLinks;if(e&&!a.ctrlKey&&!a.metaKey&&!a.shiftKey&&2!==a.which&&2!==a.button){for(var g=x(a.target);"a"!==ua(g[0]);)if(g[0]===f[0]||!(g=g.parent())[0])return;if(!A(e)||!z(g.attr(e))){var e=g.prop("href"),h=g.attr("href")||g.attr("xlink:href");D(e)&&"[object SVGAnimatedString]"===e.toString()&&(e=ga(e.animVal).href);t.test(e)||!e||g.attr("target")||
122a.isDefaultPrevented()||!m.$$parseLinkUrl(e,h)||(a.preventDefault(),m.absUrl()!==c.url()&&d.$apply())}}});m.absUrl()!==n&&c.url(m.absUrl(),!0);var N=!0;c.onUrlChange(function(a,b){xc(a,r)?(d.$evalAsync(function(){var c=m.absUrl(),e=m.$$state,f;m.$$parse(a);m.$$state=b;f=d.$broadcast("$locationChangeStart",a,c,b,e).defaultPrevented;m.absUrl()===a&&(f?(m.$$parse(c),m.$$state=e,h(c,!1,e)):(N=!1,l(c,e)))}),d.$$phase||d.$digest()):g.location.href=a});d.$watch(function(){if(N||m.$$urlUpdatedByLocation){m.$$urlUpdatedByLocation=
123!1;var a=c.url(),b=m.absUrl(),f=c.state(),g=m.$$replace,n=!k(a,b)||m.$$html5&&e.history&&f!==m.$$state;if(N||n)N=!1,d.$evalAsync(function(){var b=m.absUrl(),c=d.$broadcast("$locationChangeStart",b,a,m.$$state,f).defaultPrevented;m.absUrl()===b&&(c?(m.$$parse(a),m.$$state=f):(n&&h(b,g,f===m.$$state?null:m.$$state),l(a,f)))})}m.$$replace=!1});return m}]}function Uf(){var a=!0,b=this;this.debugEnabled=function(b){return w(b)?(a=b,this):a};this.$get=["$window",function(d){function c(a){cc(a)&&(a.stack&&
124f?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&(a=a.message+"\n"+a.sourceURL+":"+a.line));return a}function e(a){var b=d.console||{},e=b[a]||b.log||E;return function(){var a=[];r(arguments,function(b){a.push(c(b))});return Function.prototype.apply.call(e,b,a)}}var f=Ca||/\bEdge\//.test(d.navigator&&d.navigator.userAgent);return{log:e("log"),info:e("info"),warn:e("warn"),error:e("error"),debug:function(){var c=e("debug");return function(){a&&c.apply(b,
125arguments)}}()}}]}function Og(a){return a+""}function Pg(a,b){return"undefined"!==typeof a?a:b}function Ed(a,b){return"undefined"===typeof a?b:"undefined"===typeof b?a:a+b}function Qg(a,b){switch(a.type){case q.MemberExpression:if(a.computed)return!1;break;case q.UnaryExpression:return 1;case q.BinaryExpression:return"+"!==a.operator?1:!1;case q.CallExpression:return!1}return void 0===b?Fd:b}function Z(a,b,d){var c,e,f=a.isPure=Qg(a,d);switch(a.type){case q.Program:c=!0;r(a.body,function(a){Z(a.expression,
126b,f);c=c&&a.expression.constant});a.constant=c;break;case q.Literal:a.constant=!0;a.toWatch=[];break;case q.UnaryExpression:Z(a.argument,b,f);a.constant=a.argument.constant;a.toWatch=a.argument.toWatch;break;case q.BinaryExpression:Z(a.left,b,f);Z(a.right,b,f);a.constant=a.left.constant&&a.right.constant;a.toWatch=a.left.toWatch.concat(a.right.toWatch);break;case q.LogicalExpression:Z(a.left,b,f);Z(a.right,b,f);a.constant=a.left.constant&&a.right.constant;a.toWatch=a.constant?[]:[a];break;case q.ConditionalExpression:Z(a.test,
127b,f);Z(a.alternate,b,f);Z(a.consequent,b,f);a.constant=a.test.constant&&a.alternate.constant&&a.consequent.constant;a.toWatch=a.constant?[]:[a];break;case q.Identifier:a.constant=!1;a.toWatch=[a];break;case q.MemberExpression:Z(a.object,b,f);a.computed&&Z(a.property,b,f);a.constant=a.object.constant&&(!a.computed||a.property.constant);a.toWatch=a.constant?[]:[a];break;case q.CallExpression:c=d=a.filter?!b(a.callee.name).$stateful:!1;e=[];r(a.arguments,function(a){Z(a,b,f);c=c&&a.constant;e.push.apply(e,
128a.toWatch)});a.constant=c;a.toWatch=d?e:[a];break;case q.AssignmentExpression:Z(a.left,b,f);Z(a.right,b,f);a.constant=a.left.constant&&a.right.constant;a.toWatch=[a];break;case q.ArrayExpression:c=!0;e=[];r(a.elements,function(a){Z(a,b,f);c=c&&a.constant;e.push.apply(e,a.toWatch)});a.constant=c;a.toWatch=e;break;case q.ObjectExpression:c=!0;e=[];r(a.properties,function(a){Z(a.value,b,f);c=c&&a.value.constant;e.push.apply(e,a.value.toWatch);a.computed&&(Z(a.key,b,!1),c=c&&a.key.constant,e.push.apply(e,
129a.key.toWatch))});a.constant=c;a.toWatch=e;break;case q.ThisExpression:a.constant=!1;a.toWatch=[];break;case q.LocalsExpression:a.constant=!1,a.toWatch=[]}}function Gd(a){if(1===a.length){a=a[0].expression;var b=a.toWatch;return 1!==b.length?b:b[0]!==a?b:void 0}}function Hd(a){return a.type===q.Identifier||a.type===q.MemberExpression}function Id(a){if(1===a.body.length&&Hd(a.body[0].expression))return{type:q.AssignmentExpression,left:a.body[0].expression,right:{type:q.NGValueParameter},operator:"="}}
130function Jd(a){this.$filter=a}function Kd(a){this.$filter=a}function Mb(a,b,d){this.ast=new q(a,d);this.astCompiler=d.csp?new Kd(b):new Jd(b)}function Ac(a){return B(a.valueOf)?a.valueOf():Rg.call(a)}function Vf(){var a=T(),b={"true":!0,"false":!1,"null":null,undefined:void 0},d,c;this.addLiteral=function(a,c){b[a]=c};this.setIdentifierFns=function(a,b){d=a;c=b;return this};this.$get=["$filter",function(e){function f(b,c){var d,f;switch(typeof b){case "string":return f=b=b.trim(),d=a[f],d||(d=new Nb(G),
131d=(new Mb(d,e,G)).parse(b),a[f]=p(d)),s(d,c);case "function":return s(b,c);default:return s(E,c)}}function g(a,b,c){return null==a||null==b?a===b:"object"!==typeof a||(a=Ac(a),"object"!==typeof a||c)?a===b||a!==a&&b!==b:!1}function k(a,b,c,d,e){var f=d.inputs,h;if(1===f.length){var k=g,f=f[0];return a.$watch(function(a){var b=f(a);g(b,k,f.isPure)||(h=d(a,void 0,void 0,[b]),k=b&&Ac(b));return h},b,c,e)}for(var l=[],m=[],n=0,p=f.length;n<p;n++)l[n]=g,m[n]=null;return a.$watch(function(a){for(var b=
132!1,c=0,e=f.length;c<e;c++){var k=f[c](a);if(b||(b=!g(k,l[c],f[c].isPure)))m[c]=k,l[c]=k&&Ac(k)}b&&(h=d(a,void 0,void 0,m));return h},b,c,e)}function h(a,b,c,d,e){function f(){h(m)&&k()}function g(a,b,c,d){m=u&&d?d[0]:n(a,b,c,d);h(m)&&a.$$postDigest(f);return s(m)}var h=d.literal?l:w,k,m,n=d.$$intercepted||d,s=d.$$interceptor||Ta,u=d.inputs&&!n.inputs;g.literal=d.literal;g.constant=d.constant;g.inputs=d.inputs;p(g);return k=a.$watch(g,b,c,e)}function l(a){var b=!0;r(a,function(a){w(a)||(b=!1)});return b}
133function m(a,b,c,d){var e=a.$watch(function(a){e();return d(a)},b,c);return e}function p(a){a.constant?a.$$watchDelegate=m:a.oneTime?a.$$watchDelegate=h:a.inputs&&(a.$$watchDelegate=k);return a}function n(a,b){function c(d){return b(a(d))}c.$stateful=a.$stateful||b.$stateful;c.$$pure=a.$$pure&&b.$$pure;return c}function s(a,b){if(!b)return a;a.$$interceptor&&(b=n(a.$$interceptor,b),a=a.$$intercepted);var c=!1,d=function(d,e,f,g){d=c&&g?g[0]:a(d,e,f,g);return b(d)};d.$$intercepted=a;d.$$interceptor=
134b;d.literal=a.literal;d.oneTime=a.oneTime;d.constant=a.constant;b.$stateful||(c=!a.inputs,d.inputs=a.inputs?a.inputs:[a],b.$$pure||(d.inputs=d.inputs.map(function(a){return a.isPure===Fd?function(b){return a(b)}:a})));return p(d)}var G={csp:Aa().noUnsafeEval,literals:Ia(b),isIdentifierStart:B(d)&&d,isIdentifierContinue:B(c)&&c};f.$$getAst=function(a){var b=new Nb(G);return(new Mb(b,e,G)).getAst(a).ast};return f}]}function Xf(){var a=!0;this.$get=["$rootScope","$exceptionHandler",function(b,d){return Ld(function(a){b.$evalAsync(a)},
135d,a)}];this.errorOnUnhandledRejections=function(b){return w(b)?(a=b,this):a}}function Yf(){var a=!0;this.$get=["$browser","$exceptionHandler",function(b,d){return Ld(function(a){b.defer(a)},d,a)}];this.errorOnUnhandledRejections=function(b){return w(b)?(a=b,this):a}}function Ld(a,b,d){function c(){return new e}function e(){var a=this.promise=new f;this.resolve=function(b){h(a,b)};this.reject=function(b){m(a,b)};this.notify=function(b){n(a,b)}}function f(){this.$$state={status:0}}function g(){for(;!w&&
136x.length;){var a=x.shift();if(!a.pur){a.pur=!0;var c=a.value,c="Possibly unhandled rejection: "+("function"===typeof c?c.toString().replace(/ \{[\s\S]*$/,""):z(c)?"undefined":"string"!==typeof c?Ie(c,void 0):c);cc(a.value)?b(a.value,c):b(c)}}}function k(c){!d||c.pending||2!==c.status||c.pur||(0===w&&0===x.length&&a(g),x.push(c));!c.processScheduled&&c.pending&&(c.processScheduled=!0,++w,a(function(){var e,f,k;k=c.pending;c.processScheduled=!1;c.pending=void 0;try{for(var l=0,n=k.length;l<n;++l){c.pur=
137!0;f=k[l][0];e=k[l][c.status];try{B(e)?h(f,e(c.value)):1===c.status?h(f,c.value):m(f,c.value)}catch(p){m(f,p),p&&!0===p.$$passToExceptionHandler&&b(p)}}}finally{--w,d&&0===w&&a(g)}}))}function h(a,b){a.$$state.status||(b===a?p(a,v("qcycle",b)):l(a,b))}function l(a,b){function c(b){g||(g=!0,l(a,b))}function d(b){g||(g=!0,p(a,b))}function e(b){n(a,b)}var f,g=!1;try{if(D(b)||B(b))f=b.then;B(f)?(a.$$state.status=-1,f.call(b,c,d,e)):(a.$$state.value=b,a.$$state.status=1,k(a.$$state))}catch(h){d(h)}}function m(a,
138b){a.$$state.status||p(a,b)}function p(a,b){a.$$state.value=b;a.$$state.status=2;k(a.$$state)}function n(c,d){var e=c.$$state.pending;0>=c.$$state.status&&e&&e.length&&a(function(){for(var a,c,f=0,g=e.length;f<g;f++){c=e[f][0];a=e[f][3];try{n(c,B(a)?a(d):d)}catch(h){b(h)}}})}function s(a){var b=new f;m(b,a);return b}function G(a,b,c){var d=null;try{B(c)&&(d=c())}catch(e){return s(e)}return d&&B(d.then)?d.then(function(){return b(a)},s):b(a)}function t(a,b,c,d){var e=new f;h(e,a);return e.then(b,c,
139d)}function q(a){if(!B(a))throw v("norslvr",a);var b=new f;a(function(a){h(b,a)},function(a){m(b,a)});return b}var v=F("$q",TypeError),w=0,x=[];S(f.prototype,{then:function(a,b,c){if(z(a)&&z(b)&&z(c))return this;var d=new f;this.$$state.pending=this.$$state.pending||[];this.$$state.pending.push([d,a,b,c]);0<this.$$state.status&&k(this.$$state);return d},"catch":function(a){return this.then(null,a)},"finally":function(a,b){return this.then(function(b){return G(b,y,a)},function(b){return G(b,s,a)},
140b)}});var y=t;q.prototype=f.prototype;q.defer=c;q.reject=s;q.when=t;q.resolve=y;q.all=function(a){var b=new f,c=0,d=H(a)?[]:{};r(a,function(a,e){c++;t(a).then(function(a){d[e]=a;--c||h(b,d)},function(a){m(b,a)})});0===c&&h(b,d);return b};q.race=function(a){var b=c();r(a,function(a){t(a).then(b.resolve,b.reject)});return b.promise};return q}function hg(){this.$get=["$window","$timeout",function(a,b){var d=a.requestAnimationFrame||a.webkitRequestAnimationFrame,c=a.cancelAnimationFrame||a.webkitCancelAnimationFrame||
141a.webkitCancelRequestAnimationFrame,e=!!d,f=e?function(a){var b=d(a);return function(){c(b)}}:function(a){var c=b(a,16.66,!1);return function(){b.cancel(c)}};f.supported=e;return f}]}function Wf(){function a(a){function b(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null;this.$$listeners={};this.$$listenerCount={};this.$$watchersCount=0;this.$id=++pb;this.$$ChildScope=null;this.$$suspended=!1}b.prototype=a;return b}var b=10,d=F("$rootScope"),c=null,e=null;this.digestTtl=
142function(a){arguments.length&&(b=a);return b};this.$get=["$exceptionHandler","$parse","$browser",function(f,g,k){function h(a){a.currentScope.$$destroyed=!0}function l(a){9===Ca&&(a.$$childHead&&l(a.$$childHead),a.$$nextSibling&&l(a.$$nextSibling));a.$parent=a.$$nextSibling=a.$$prevSibling=a.$$childHead=a.$$childTail=a.$root=a.$$watchers=null}function m(){this.$id=++pb;this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null;this.$root=
143this;this.$$suspended=this.$$destroyed=!1;this.$$listeners={};this.$$listenerCount={};this.$$watchersCount=0;this.$$isolateBindings=null}function p(a){if(v.$$phase)throw d("inprog",v.$$phase);v.$$phase=a}function n(a,b){do a.$$watchersCount+=b;while(a=a.$parent)}function s(a,b,c){do a.$$listenerCount[c]-=b,0===a.$$listenerCount[c]&&delete a.$$listenerCount[c];while(a=a.$parent)}function G(){}function t(){for(;y.length;)try{y.shift()()}catch(a){f(a)}e=null}function q(){null===e&&(e=k.defer(function(){v.$apply(t)},
144null,"$applyAsync"))}m.prototype={constructor:m,$new:function(b,c){var d;c=c||this;b?(d=new m,d.$root=this.$root):(this.$$ChildScope||(this.$$ChildScope=a(this)),d=new this.$$ChildScope);d.$parent=c;d.$$prevSibling=c.$$childTail;c.$$childHead?(c.$$childTail.$$nextSibling=d,c.$$childTail=d):c.$$childHead=c.$$childTail=d;(b||c!==this)&&d.$on("$destroy",h);return d},$watch:function(a,b,d,e){var f=g(a);b=B(b)?b:E;if(f.$$watchDelegate)return f.$$watchDelegate(this,b,d,f,a);var h=this,k=h.$$watchers,l=
145{fn:b,last:G,get:f,exp:e||a,eq:!!d};c=null;k||(k=h.$$watchers=[],k.$$digestWatchIndex=-1);k.unshift(l);k.$$digestWatchIndex++;n(this,1);return function(){var a=cb(k,l);0<=a&&(n(h,-1),a<k.$$digestWatchIndex&&k.$$digestWatchIndex--);c=null}},$watchGroup:function(a,b){function c(){h=!1;try{k?(k=!1,b(e,e,g)):b(e,d,g)}finally{for(var f=0;f<a.length;f++)d[f]=e[f]}}var d=Array(a.length),e=Array(a.length),f=[],g=this,h=!1,k=!0;if(!a.length){var l=!0;g.$evalAsync(function(){l&&b(e,e,g)});return function(){l=
146!1}}if(1===a.length)return this.$watch(a[0],function(a,c,f){e[0]=a;d[0]=c;b(e,a===c?e:d,f)});r(a,function(a,b){var d=g.$watch(a,function(a){e[b]=a;h||(h=!0,g.$evalAsync(c))});f.push(d)});return function(){for(;f.length;)f.shift()()}},$watchCollection:function(a,b){function c(a){e=a;var b,d,g,h;if(!z(e)){if(D(e))if(ya(e))for(f!==n&&(f=n,t=f.length=0,l++),a=e.length,t!==a&&(l++,f.length=t=a),b=0;b<a;b++)h=f[b],g=e[b],d=h!==h&&g!==g,d||h===g||(l++,f[b]=g);else{f!==p&&(f=p={},t=0,l++);a=0;for(b in e)ta.call(e,
147b)&&(a++,g=e[b],h=f[b],b in f?(d=h!==h&&g!==g,d||h===g||(l++,f[b]=g)):(t++,f[b]=g,l++));if(t>a)for(b in l++,f)ta.call(e,b)||(t--,delete f[b])}else f!==e&&(f=e,l++);return l}}c.$$pure=g(a).literal;c.$stateful=!c.$$pure;var d=this,e,f,h,k=1<b.length,l=0,m=g(a,c),n=[],p={},s=!0,t=0;return this.$watch(m,function(){s?(s=!1,b(e,e,d)):b(e,h,d);if(k)if(D(e))if(ya(e)){h=Array(e.length);for(var a=0;a<e.length;a++)h[a]=e[a]}else for(a in h={},e)ta.call(e,a)&&(h[a]=e[a]);else h=e})},$digest:function(){var a,
148g,h,l,m,n,s,r=b,q,y=w.length?v:this,N=[],z,A;p("$digest");k.$$checkUrlChange();this===v&&null!==e&&(k.defer.cancel(e),t());c=null;do{s=!1;q=y;for(n=0;n<w.length;n++){try{A=w[n],l=A.fn,l(A.scope,A.locals)}catch(C){f(C)}c=null}w.length=0;a:do{if(n=!q.$$suspended&&q.$$watchers)for(n.$$digestWatchIndex=n.length;n.$$digestWatchIndex--;)try{if(a=n[n.$$digestWatchIndex])if(m=a.get,(g=m(q))!==(h=a.last)&&!(a.eq?va(g,h):X(g)&&X(h)))s=!0,c=a,a.last=a.eq?Ia(g,null):g,l=a.fn,l(g,h===G?g:h,q),5>r&&(z=4-r,N[z]||
149(N[z]=[]),N[z].push({msg:B(a.exp)?"fn: "+(a.exp.name||a.exp.toString()):a.exp,newVal:g,oldVal:h}));else if(a===c){s=!1;break a}}catch(E){f(E)}if(!(n=!q.$$suspended&&q.$$watchersCount&&q.$$childHead||q!==y&&q.$$nextSibling))for(;q!==y&&!(n=q.$$nextSibling);)q=q.$parent}while(q=n);if((s||w.length)&&!r--)throw v.$$phase=null,d("infdig",b,N);}while(s||w.length);for(v.$$phase=null;J<x.length;)try{x[J++]()}catch(D){f(D)}x.length=J=0;k.$$checkUrlChange()},$suspend:function(){this.$$suspended=!0},$isSuspended:function(){return this.$$suspended},
150$resume:function(){this.$$suspended=!1},$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;this===v&&k.$$applicationDestroyed();n(this,-this.$$watchersCount);for(var b in this.$$listenerCount)s(this,this.$$listenerCount[b],b);a&&a.$$childHead===this&&(a.$$childHead=this.$$nextSibling);a&&a.$$childTail===this&&(a.$$childTail=this.$$prevSibling);this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling);this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=
151this.$$prevSibling);this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=E;this.$on=this.$watch=this.$watchGroup=function(){return E};this.$$listeners={};this.$$nextSibling=null;l(this)}},$eval:function(a,b){return g(a)(this,b)},$evalAsync:function(a,b){v.$$phase||w.length||k.defer(function(){w.length&&v.$digest()},null,"$evalAsync");w.push({scope:this,fn:g(a),locals:b})},$$postDigest:function(a){x.push(a)},$apply:function(a){try{p("$apply");try{return this.$eval(a)}finally{v.$$phase=
152null}}catch(b){f(b)}finally{try{v.$digest()}catch(c){throw f(c),c;}}},$applyAsync:function(a){function b(){c.$eval(a)}var c=this;a&&y.push(b);a=g(a);q()},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]);c.push(b);var d=this;do d.$$listenerCount[a]||(d.$$listenerCount[a]=0),d.$$listenerCount[a]++;while(d=d.$parent);var e=this;return function(){var d=c.indexOf(b);-1!==d&&(delete c[d],s(e,1,a))}},$emit:function(a,b){var c=[],d,e=this,g=!1,h={name:a,targetScope:e,stopPropagation:function(){g=
153!0},preventDefault:function(){h.defaultPrevented=!0},defaultPrevented:!1},k=db([h],arguments,1),l,m;do{d=e.$$listeners[a]||c;h.currentScope=e;l=0;for(m=d.length;l<m;l++)if(d[l])try{d[l].apply(null,k)}catch(n){f(n)}else d.splice(l,1),l--,m--;if(g)break;e=e.$parent}while(e);h.currentScope=null;return h},$broadcast:function(a,b){var c=this,d=this,e={name:a,targetScope:this,preventDefault:function(){e.defaultPrevented=!0},defaultPrevented:!1};if(!this.$$listenerCount[a])return e;for(var g=db([e],arguments,
1541),h,k;c=d;){e.currentScope=c;d=c.$$listeners[a]||[];h=0;for(k=d.length;h<k;h++)if(d[h])try{d[h].apply(null,g)}catch(l){f(l)}else d.splice(h,1),h--,k--;if(!(d=c.$$listenerCount[a]&&c.$$childHead||c!==this&&c.$$nextSibling))for(;c!==this&&!(d=c.$$nextSibling);)c=c.$parent}e.currentScope=null;return e}};var v=new m,w=v.$$asyncQueue=[],x=v.$$postDigestQueue=[],y=v.$$applyAsyncQueue=[],J=0;return v}]}function Le(){var a=/^\s*(https?|s?ftp|mailto|tel|file):/,b=/^\s*((https?|ftp|file|blob):|data:image\/)/;
155this.aHrefSanitizationWhitelist=function(b){return w(b)?(a=b,this):a};this.imgSrcSanitizationWhitelist=function(a){return w(a)?(b=a,this):b};this.$get=function(){return function(d,c){var e=c?b:a,f=ga(d&&d.trim()).href;return""===f||f.match(e)?d:"unsafe:"+f}}}function Sg(a){if("self"===a)return a;if(A(a)){if(-1<a.indexOf("***"))throw Ea("iwcard",a);a=Md(a).replace(/\\\*\\\*/g,".*").replace(/\\\*/g,"[^:/.?&;]*");return new RegExp("^"+a+"$")}if(ab(a))return new RegExp("^"+a.source+"$");throw Ea("imatcher");
156}function Nd(a){var b=[];w(a)&&r(a,function(a){b.push(Sg(a))});return b}function $f(){this.SCE_CONTEXTS=V;var a=["self"],b=[];this.resourceUrlWhitelist=function(b){arguments.length&&(a=Nd(b));return a};this.resourceUrlBlacklist=function(a){arguments.length&&(b=Nd(a));return b};this.$get=["$injector","$$sanitizeUri",function(d,c){function e(a,b){var c;"self"===a?(c=Bc(b,Od))||(C.document.baseURI?c=C.document.baseURI:(Na||(Na=C.document.createElement("a"),Na.href=".",Na=Na.cloneNode(!1)),c=Na.href),
157c=Bc(b,c)):c=!!a.exec(b.href);return c}function f(a){var b=function(a){this.$$unwrapTrustedValue=function(){return a}};a&&(b.prototype=new a);b.prototype.valueOf=function(){return this.$$unwrapTrustedValue()};b.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()};return b}var g=function(a){throw Ea("unsafe");};d.has("$sanitize")&&(g=d.get("$sanitize"));var k=f(),h={};h[V.HTML]=f(k);h[V.CSS]=f(k);h[V.MEDIA_URL]=f(k);h[V.URL]=f(h[V.MEDIA_URL]);h[V.JS]=f(k);h[V.RESOURCE_URL]=
158f(h[V.URL]);return{trustAs:function(a,b){var c=h.hasOwnProperty(a)?h[a]:null;if(!c)throw Ea("icontext",a,b);if(null===b||z(b)||""===b)return b;if("string"!==typeof b)throw Ea("itype",a);return new c(b)},getTrusted:function(d,f){if(null===f||z(f)||""===f)return f;var k=h.hasOwnProperty(d)?h[d]:null;if(k&&f instanceof k)return f.$$unwrapTrustedValue();B(f.$$unwrapTrustedValue)&&(f=f.$$unwrapTrustedValue());if(d===V.MEDIA_URL||d===V.URL)return c(f.toString(),d===V.MEDIA_URL);if(d===V.RESOURCE_URL){var k=
159ga(f.toString()),n,s,r=!1;n=0;for(s=a.length;n<s;n++)if(e(a[n],k)){r=!0;break}if(r)for(n=0,s=b.length;n<s;n++)if(e(b[n],k)){r=!1;break}if(r)return f;throw Ea("insecurl",f.toString());}if(d===V.HTML)return g(f);throw Ea("unsafe");},valueOf:function(a){return a instanceof k?a.$$unwrapTrustedValue():a}}}]}function Zf(){var a=!0;this.enabled=function(b){arguments.length&&(a=!!b);return a};this.$get=["$parse","$sceDelegate",function(b,d){if(a&&8>Ca)throw Ea("iequirks");var c=ja(V);c.isEnabled=function(){return a};
160c.trustAs=d.trustAs;c.getTrusted=d.getTrusted;c.valueOf=d.valueOf;a||(c.trustAs=c.getTrusted=function(a,b){return b},c.valueOf=Ta);c.parseAs=function(a,d){var e=b(d);return e.literal&&e.constant?e:b(d,function(b){return c.getTrusted(a,b)})};var e=c.parseAs,f=c.getTrusted,g=c.trustAs;r(V,function(a,b){var d=K(b);c[("parse_as_"+d).replace(Cc,wb)]=function(b){return e(a,b)};c[("get_trusted_"+d).replace(Cc,wb)]=function(b){return f(a,b)};c[("trust_as_"+d).replace(Cc,wb)]=function(b){return g(a,b)}});
161return c}]}function ag(){this.$get=["$window","$document",function(a,b){var d={},c=!((!a.nw||!a.nw.process)&&a.chrome&&(a.chrome.app&&a.chrome.app.runtime||!a.chrome.app&&a.chrome.runtime&&a.chrome.runtime.id))&&a.history&&a.history.pushState,e=fa((/android (\d+)/.exec(K((a.navigator||{}).userAgent))||[])[1]),f=/Boxee/i.test((a.navigator||{}).userAgent),g=b[0]||{},k=g.body&&g.body.style,h=!1,l=!1;k&&(h=!!("transition"in k||"webkitTransition"in k),l=!!("animation"in k||"webkitAnimation"in k));return{history:!(!c||
1624>e||f),hasEvent:function(a){if("input"===a&&Ca)return!1;if(z(d[a])){var b=g.createElement("div");d[a]="on"+a in b}return d[a]},csp:Aa(),transitions:h,animations:l,android:e}}]}function bg(){this.$get=ia(function(a){return new Tg(a)})}function Tg(a){function b(){var a=e.pop();return a&&a.cb}function d(a){for(var b=e.length-1;0<=b;--b){var c=e[b];if(c.type===a)return e.splice(b,1),c.cb}}var c={},e=[],f=this.ALL_TASKS_TYPE="$$all$$",g=this.DEFAULT_TASK_TYPE="$$default$$";this.completeTask=function(e,
163h){h=h||g;try{e()}finally{var l;l=h||g;c[l]&&(c[l]--,c[f]--);l=c[h];var m=c[f];if(!m||!l)for(l=m?d:b;m=l(h);)try{m()}catch(p){a.error(p)}}};this.incTaskCount=function(a){a=a||g;c[a]=(c[a]||0)+1;c[f]=(c[f]||0)+1};this.notifyWhenNoPendingTasks=function(a,b){b=b||f;c[b]?e.push({type:b,cb:a}):a()}}function dg(){var a;this.httpOptions=function(b){return b?(a=b,this):a};this.$get=["$exceptionHandler","$templateCache","$http","$q","$sce",function(b,d,c,e,f){function g(k,h){g.totalPendingRequests++;if(!A(k)||
164z(d.get(k)))k=f.getTrustedResourceUrl(k);var l=c.defaults&&c.defaults.transformResponse;H(l)?l=l.filter(function(a){return a!==vc}):l===vc&&(l=null);return c.get(k,S({cache:d,transformResponse:l},a)).finally(function(){g.totalPendingRequests--}).then(function(a){return d.put(k,a.data)},function(a){h||(a=Ug("tpload",k,a.status,a.statusText),b(a));return e.reject(a)})}g.totalPendingRequests=0;return g}]}function eg(){this.$get=["$rootScope","$browser","$location",function(a,b,d){return{findBindings:function(a,
165b,d){a=a.getElementsByClassName("ng-binding");var g=[];r(a,function(a){var c=ca.element(a).data("$binding");c&&r(c,function(c){d?(new RegExp("(^|\\s)"+Md(b)+"(\\s|\\||$)")).test(c)&&g.push(a):-1!==c.indexOf(b)&&g.push(a)})});return g},findModels:function(a,b,d){for(var g=["ng-","data-ng-","ng\\:"],k=0;k<g.length;++k){var h=a.querySelectorAll("["+g[k]+"model"+(d?"=":"*=")+'"'+b+'"]');if(h.length)return h}},getLocation:function(){return d.url()},setLocation:function(b){b!==d.url()&&(d.url(b),a.$digest())},
166whenStable:function(a){b.notifyWhenNoOutstandingRequests(a)}}}]}function fg(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function(a,b,d,c,e){function f(f,h,l){B(f)||(l=h,h=f,f=E);var m=Ha.call(arguments,3),p=w(l)&&!l,n=(p?c:d).defer(),s=n.promise,r;r=b.defer(function(){try{n.resolve(f.apply(null,m))}catch(b){n.reject(b),e(b)}finally{delete g[s.$$timeoutId]}p||a.$apply()},h,"$timeout");s.$$timeoutId=r;g[r]=n;return s}var g={};f.cancel=function(a){if(!a)return!1;if(!a.hasOwnProperty("$$timeoutId"))throw Vg("badprom");
167if(!g.hasOwnProperty(a.$$timeoutId))return!1;a=a.$$timeoutId;var c=g[a],d=c.promise;d.$$state&&(d.$$state.pur=!0);c.reject("canceled");delete g[a];return b.defer.cancel(a)};return f}]}function ga(a){if(!A(a))return a;Ca&&(aa.setAttribute("href",a),a=aa.href);aa.setAttribute("href",a);a=aa.hostname;!Wg&&-1<a.indexOf(":")&&(a="["+a+"]");return{href:aa.href,protocol:aa.protocol?aa.protocol.replace(/:$/,""):"",host:aa.host,search:aa.search?aa.search.replace(/^\?/,""):"",hash:aa.hash?aa.hash.replace(/^#/,
168""):"",hostname:a,port:aa.port,pathname:"/"===aa.pathname.charAt(0)?aa.pathname:"/"+aa.pathname}}function Jg(a){var b=[Od].concat(a.map(ga));return function(a){a=ga(a);return b.some(Bc.bind(null,a))}}function Bc(a,b){a=ga(a);b=ga(b);return a.protocol===b.protocol&&a.host===b.host}function gg(){this.$get=ia(C)}function Pd(a){function b(a){try{return decodeURIComponent(a)}catch(b){return a}}var d=a[0]||{},c={},e="";return function(){var a,g,k,h,l;try{a=d.cookie||""}catch(m){a=""}if(a!==e)for(e=a,a=
169e.split("; "),c={},k=0;k<a.length;k++)g=a[k],h=g.indexOf("="),0<h&&(l=b(g.substring(0,h)),z(c[l])&&(c[l]=b(g.substring(h+1))));return c}}function kg(){this.$get=Pd}function dd(a){function b(d,c){if(D(d)){var e={};r(d,function(a,c){e[c]=b(c,a)});return e}return a.factory(d+"Filter",c)}this.register=b;this.$get=["$injector",function(a){return function(b){return a.get(b+"Filter")}}];b("currency",Qd);b("date",Rd);b("filter",Xg);b("json",Yg);b("limitTo",Zg);b("lowercase",$g);b("number",Sd);b("orderBy",
170Td);b("uppercase",ah)}function Xg(){return function(a,b,d,c){if(!ya(a)){if(null==a)return a;throw F("filter")("notarray",a);}c=c||"$";var e;switch(Dc(b)){case "function":break;case "boolean":case "null":case "number":case "string":e=!0;case "object":b=bh(b,d,c,e);break;default:return a}return Array.prototype.filter.call(a,b)}}function bh(a,b,d,c){var e=D(a)&&d in a;!0===b?b=va:B(b)||(b=function(a,b){if(z(a))return!1;if(null===a||null===b)return a===b;if(D(b)||D(a)&&!bc(a))return!1;a=K(""+a);b=K(""+
171b);return-1!==a.indexOf(b)});return function(f){return e&&!D(f)?Fa(f,a[d],b,d,!1):Fa(f,a,b,d,c)}}function Fa(a,b,d,c,e,f){var g=Dc(a),k=Dc(b);if("string"===k&&"!"===b.charAt(0))return!Fa(a,b.substring(1),d,c,e);if(H(a))return a.some(function(a){return Fa(a,b,d,c,e)});switch(g){case "object":var h;if(e){for(h in a)if(h.charAt&&"$"!==h.charAt(0)&&Fa(a[h],b,d,c,!0))return!0;return f?!1:Fa(a,b,d,c,!1)}if("object"===k){for(h in b)if(f=b[h],!B(f)&&!z(f)&&(g=h===c,!Fa(g?a:a[h],f,d,c,g,g)))return!1;return!0}return d(a,
172b);case "function":return!1;default:return d(a,b)}}function Dc(a){return null===a?"null":typeof a}function Qd(a){var b=a.NUMBER_FORMATS;return function(a,c,e){z(c)&&(c=b.CURRENCY_SYM);z(e)&&(e=b.PATTERNS[1].maxFrac);var f=c?/\u00A4/g:/\s*\u00A4\s*/g;return null==a?a:Ud(a,b.PATTERNS[1],b.GROUP_SEP,b.DECIMAL_SEP,e).replace(f,c)}}function Sd(a){var b=a.NUMBER_FORMATS;return function(a,c){return null==a?a:Ud(a,b.PATTERNS[0],b.GROUP_SEP,b.DECIMAL_SEP,c)}}function ch(a){var b=0,d,c,e,f,g;-1<(c=a.indexOf(Vd))&&
173(a=a.replace(Vd,""));0<(e=a.search(/e/i))?(0>c&&(c=e),c+=+a.slice(e+1),a=a.substring(0,e)):0>c&&(c=a.length);for(e=0;a.charAt(e)===Ec;e++);if(e===(g=a.length))d=[0],c=1;else{for(g--;a.charAt(g)===Ec;)g--;c-=e;d=[];for(f=0;e<=g;e++,f++)d[f]=+a.charAt(e)}c>Wd&&(d=d.splice(0,Wd-1),b=c-1,c=1);return{d:d,e:b,i:c}}function dh(a,b,d,c){var e=a.d,f=e.length-a.i;b=z(b)?Math.min(Math.max(d,f),c):+b;d=b+a.i;c=e[d];if(0<d){e.splice(Math.max(a.i,d));for(var g=d;g<e.length;g++)e[g]=0}else for(f=Math.max(0,f),a.i=
1741,e.length=Math.max(1,d=b+1),e[0]=0,g=1;g<d;g++)e[g]=0;if(5<=c)if(0>d-1){for(c=0;c>d;c--)e.unshift(0),a.i++;e.unshift(1);a.i++}else e[d-1]++;for(;f<Math.max(0,b);f++)e.push(0);if(b=e.reduceRight(function(a,b,c,d){b+=a;d[c]=b%10;return Math.floor(b/10)},0))e.unshift(b),a.i++}function Ud(a,b,d,c,e){if(!A(a)&&!W(a)||isNaN(a))return"";var f=!isFinite(a),g=!1,k=Math.abs(a)+"",h="";if(f)h="\u221e";else{g=ch(k);dh(g,e,b.minFrac,b.maxFrac);h=g.d;k=g.i;e=g.e;f=[];for(g=h.reduce(function(a,b){return a&&!b},
175!0);0>k;)h.unshift(0),k++;0<k?f=h.splice(k,h.length):(f=h,h=[0]);k=[];for(h.length>=b.lgSize&&k.unshift(h.splice(-b.lgSize,h.length).join(""));h.length>b.gSize;)k.unshift(h.splice(-b.gSize,h.length).join(""));h.length&&k.unshift(h.join(""));h=k.join(d);f.length&&(h+=c+f.join(""));e&&(h+="e+"+e)}return 0>a&&!g?b.negPre+h+b.negSuf:b.posPre+h+b.posSuf}function Ob(a,b,d,c){var e="";if(0>a||c&&0>=a)c?a=-a+1:(a=-a,e="-");for(a=""+a;a.length<b;)a=Ec+a;d&&(a=a.substr(a.length-b));return e+a}function ea(a,
176b,d,c,e){d=d||0;return function(f){f=f["get"+a]();if(0<d||f>-d)f+=d;0===f&&-12===d&&(f=12);return Ob(f,b,c,e)}}function kb(a,b,d){return function(c,e){var f=c["get"+a](),g=ub((d?"STANDALONE":"")+(b?"SHORT":"")+a);return e[g][f]}}function Xd(a){var b=(new Date(a,0,1)).getDay();return new Date(a,0,(4>=b?5:12)-b)}function Yd(a){return function(b){var d=Xd(b.getFullYear());b=+new Date(b.getFullYear(),b.getMonth(),b.getDate()+(4-b.getDay()))-+d;b=1+Math.round(b/6048E5);return Ob(b,a)}}function Fc(a,b){return 0>=
177a.getFullYear()?b.ERAS[0]:b.ERAS[1]}function Rd(a){function b(a){var b;if(b=a.match(d)){a=new Date(0);var f=0,g=0,k=b[8]?a.setUTCFullYear:a.setFullYear,h=b[8]?a.setUTCHours:a.setHours;b[9]&&(f=fa(b[9]+b[10]),g=fa(b[9]+b[11]));k.call(a,fa(b[1]),fa(b[2])-1,fa(b[3]));f=fa(b[4]||0)-f;g=fa(b[5]||0)-g;k=fa(b[6]||0);b=Math.round(1E3*parseFloat("0."+(b[7]||0)));h.call(a,f,g,k,b)}return a}var d=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,
178d,f){var g="",k=[],h,l;d=d||"mediumDate";d=a.DATETIME_FORMATS[d]||d;A(c)&&(c=eh.test(c)?fa(c):b(c));W(c)&&(c=new Date(c));if(!ha(c)||!isFinite(c.getTime()))return c;for(;d;)(l=fh.exec(d))?(k=db(k,l,1),d=k.pop()):(k.push(d),d=null);var m=c.getTimezoneOffset();f&&(m=ec(f,m),c=fc(c,f,!0));r(k,function(b){h=gh[b];g+=h?h(c,a.DATETIME_FORMATS,m):"''"===b?"'":b.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return g}}function Yg(){return function(a,b){z(b)&&(b=2);return eb(a,b)}}function Zg(){return function(a,
179b,d){b=Infinity===Math.abs(Number(b))?Number(b):fa(b);if(X(b))return a;W(a)&&(a=a.toString());if(!ya(a))return a;d=!d||isNaN(d)?0:fa(d);d=0>d?Math.max(0,a.length+d):d;return 0<=b?Gc(a,d,d+b):0===d?Gc(a,b,a.length):Gc(a,Math.max(0,d+b),d)}}function Gc(a,b,d){return A(a)?a.slice(b,d):Ha.call(a,b,d)}function Td(a){function b(b){return b.map(function(b){var c=1,d=Ta;if(B(b))d=b;else if(A(b)){if("+"===b.charAt(0)||"-"===b.charAt(0))c="-"===b.charAt(0)?-1:1,b=b.substring(1);if(""!==b&&(d=a(b),d.constant))var e=
180d(),d=function(a){return a[e]}}return{get:d,descending:c}})}function d(a){switch(typeof a){case "number":case "boolean":case "string":return!0;default:return!1}}function c(a,b){var c=0,d=a.type,h=b.type;if(d===h){var h=a.value,l=b.value;"string"===d?(h=h.toLowerCase(),l=l.toLowerCase()):"object"===d&&(D(h)&&(h=a.index),D(l)&&(l=b.index));h!==l&&(c=h<l?-1:1)}else c="undefined"===d?1:"undefined"===h?-1:"null"===d?1:"null"===h?-1:d<h?-1:1;return c}return function(a,f,g,k){if(null==a)return a;if(!ya(a))throw F("orderBy")("notarray",
181a);H(f)||(f=[f]);0===f.length&&(f=["+"]);var h=b(f),l=g?-1:1,m=B(k)?k:c;a=Array.prototype.map.call(a,function(a,b){return{value:a,tieBreaker:{value:b,type:"number",index:b},predicateValues:h.map(function(c){var e=c.get(a);c=typeof e;if(null===e)c="null";else if("object"===c)a:{if(B(e.valueOf)&&(e=e.valueOf(),d(e)))break a;bc(e)&&(e=e.toString(),d(e))}return{value:e,type:c,index:b}})}});a.sort(function(a,b){for(var d=0,e=h.length;d<e;d++){var f=m(a.predicateValues[d],b.predicateValues[d]);if(f)return f*
182h[d].descending*l}return(m(a.tieBreaker,b.tieBreaker)||c(a.tieBreaker,b.tieBreaker))*l});return a=a.map(function(a){return a.value})}}function Ra(a){B(a)&&(a={link:a});a.restrict=a.restrict||"AC";return ia(a)}function Pb(a,b,d,c,e){this.$$controls=[];this.$error={};this.$$success={};this.$pending=void 0;this.$name=e(b.name||b.ngForm||"")(d);this.$dirty=!1;this.$valid=this.$pristine=!0;this.$submitted=this.$invalid=!1;this.$$parentForm=lb;this.$$element=a;this.$$animate=c;Zd(this)}function Zd(a){a.$$classCache=
183{};a.$$classCache[$d]=!(a.$$classCache[mb]=a.$$element.hasClass(mb))}function ae(a){function b(a,b,c){c&&!a.$$classCache[b]?(a.$$animate.addClass(a.$$element,b),a.$$classCache[b]=!0):!c&&a.$$classCache[b]&&(a.$$animate.removeClass(a.$$element,b),a.$$classCache[b]=!1)}function d(a,c,d){c=c?"-"+Vc(c,"-"):"";b(a,mb+c,!0===d);b(a,$d+c,!1===d)}var c=a.set,e=a.unset;a.clazz.prototype.$setValidity=function(a,g,k){z(g)?(this.$pending||(this.$pending={}),c(this.$pending,a,k)):(this.$pending&&e(this.$pending,
184a,k),be(this.$pending)&&(this.$pending=void 0));Ga(g)?g?(e(this.$error,a,k),c(this.$$success,a,k)):(c(this.$error,a,k),e(this.$$success,a,k)):(e(this.$error,a,k),e(this.$$success,a,k));this.$pending?(b(this,"ng-pending",!0),this.$valid=this.$invalid=void 0,d(this,"",null)):(b(this,"ng-pending",!1),this.$valid=be(this.$error),this.$invalid=!this.$valid,d(this,"",this.$valid));g=this.$pending&&this.$pending[a]?void 0:this.$error[a]?!1:this.$$success[a]?!0:null;d(this,a,g);this.$$parentForm.$setValidity(a,
185g,this)}}function be(a){if(a)for(var b in a)if(a.hasOwnProperty(b))return!1;return!0}function Hc(a){a.$formatters.push(function(b){return a.$isEmpty(b)?b:b.toString()})}function Sa(a,b,d,c,e,f){var g=K(b[0].type);if(!e.android){var k=!1;b.on("compositionstart",function(){k=!0});b.on("compositionupdate",function(a){if(z(a.data)||""===a.data)k=!1});b.on("compositionend",function(){k=!1;l()})}var h,l=function(a){h&&(f.defer.cancel(h),h=null);if(!k){var e=b.val();a=a&&a.type;"password"===g||d.ngTrim&&
186"false"===d.ngTrim||(e=U(e));(c.$viewValue!==e||""===e&&c.$$hasNativeValidators)&&c.$setViewValue(e,a)}};if(e.hasEvent("input"))b.on("input",l);else{var m=function(a,b,c){h||(h=f.defer(function(){h=null;b&&b.value===c||l(a)}))};b.on("keydown",function(a){var b=a.keyCode;91===b||15<b&&19>b||37<=b&&40>=b||m(a,this,this.value)});if(e.hasEvent("paste"))b.on("paste cut drop",m)}b.on("change",l);if(ce[g]&&c.$$hasNativeValidators&&g===d.type)b.on("keydown wheel mousedown",function(a){if(!h){var b=this.validity,
187c=b.badInput,d=b.typeMismatch;h=f.defer(function(){h=null;b.badInput===c&&b.typeMismatch===d||l(a)})}});c.$render=function(){var a=c.$isEmpty(c.$viewValue)?"":c.$viewValue;b.val()!==a&&b.val(a)}}function Qb(a,b){return function(d,c){var e,f;if(ha(d))return d;if(A(d)){'"'===d.charAt(0)&&'"'===d.charAt(d.length-1)&&(d=d.substring(1,d.length-1));if(hh.test(d))return new Date(d);a.lastIndex=0;if(e=a.exec(d))return e.shift(),f=c?{yyyy:c.getFullYear(),MM:c.getMonth()+1,dd:c.getDate(),HH:c.getHours(),mm:c.getMinutes(),
188ss:c.getSeconds(),sss:c.getMilliseconds()/1E3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},r(e,function(a,c){c<b.length&&(f[b[c]]=+a)}),e=new Date(f.yyyy,f.MM-1,f.dd,f.HH,f.mm,f.ss||0,1E3*f.sss||0),100>f.yyyy&&e.setFullYear(f.yyyy),e}return NaN}}function nb(a,b,d,c){return function(e,f,g,k,h,l,m,p){function n(a){return a&&!(a.getTime&&a.getTime()!==a.getTime())}function s(a){return w(a)&&!ha(a)?r(a)||void 0:a}function r(a,b){var c=k.$options.getOption("timezone");v&&v!==c&&(b=Sc(b,ec(v)));var e=d(a,
189b);!isNaN(e)&&c&&(e=fc(e,c));return e}Ic(e,f,g,k,a);Sa(e,f,g,k,h,l);var t="time"===a||"datetimelocal"===a,q,v;k.$parsers.push(function(c){if(k.$isEmpty(c))return null;if(b.test(c))return r(c,q);k.$$parserName=a});k.$formatters.push(function(a){if(a&&!ha(a))throw ob("datefmt",a);if(n(a)){q=a;var b=k.$options.getOption("timezone");b&&(v=b,q=fc(q,b,!0));var d=c;t&&A(k.$options.getOption("timeSecondsFormat"))&&(d=c.replace("ss.sss",k.$options.getOption("timeSecondsFormat")).replace(/:$/,""));a=m("date")(a,
190d,b);t&&k.$options.getOption("timeStripZeroSeconds")&&(a=a.replace(/(?::00)?(?:\.000)?$/,""));return a}v=q=null;return""});if(w(g.min)||g.ngMin){var x=g.min||p(g.ngMin)(e),B=s(x);k.$validators.min=function(a){return!n(a)||z(B)||d(a)>=B};g.$observe("min",function(a){a!==x&&(B=s(a),x=a,k.$validate())})}if(w(g.max)||g.ngMax){var y=g.max||p(g.ngMax)(e),J=s(y);k.$validators.max=function(a){return!n(a)||z(J)||d(a)<=J};g.$observe("max",function(a){a!==y&&(J=s(a),y=a,k.$validate())})}}}function Ic(a,b,d,
191c,e){(c.$$hasNativeValidators=D(b[0].validity))&&c.$parsers.push(function(a){var d=b.prop("validity")||{};if(d.badInput||d.typeMismatch)c.$$parserName=e;else return a})}function de(a){a.$parsers.push(function(b){if(a.$isEmpty(b))return null;if(ih.test(b))return parseFloat(b);a.$$parserName="number"});a.$formatters.push(function(b){if(!a.$isEmpty(b)){if(!W(b))throw ob("numfmt",b);b=b.toString()}return b})}function na(a){w(a)&&!W(a)&&(a=parseFloat(a));return X(a)?void 0:a}function Jc(a){var b=a.toString(),
192d=b.indexOf(".");return-1===d?-1<a&&1>a&&(a=/e-(\d+)$/.exec(b))?Number(a[1]):0:b.length-d-1}function ee(a,b,d){a=Number(a);var c=(a|0)!==a,e=(b|0)!==b,f=(d|0)!==d;if(c||e||f){var g=c?Jc(a):0,k=e?Jc(b):0,h=f?Jc(d):0,g=Math.max(g,k,h),g=Math.pow(10,g);a*=g;b*=g;d*=g;c&&(a=Math.round(a));e&&(b=Math.round(b));f&&(d=Math.round(d))}return 0===(a-b)%d}function fe(a,b,d,c,e){if(w(c)){a=a(c);if(!a.constant)throw ob("constexpr",d,c);return a(b)}return e}function Kc(a,b){function d(a,b){if(!a||!a.length)return[];
193if(!b||!b.length)return a;var c=[],d=0;a:for(;d<a.length;d++){for(var e=a[d],m=0;m<b.length;m++)if(e===b[m])continue a;c.push(e)}return c}function c(a){if(!a)return a;var b=a;H(a)?b=a.map(c).join(" "):D(a)?b=Object.keys(a).filter(function(b){return a[b]}).join(" "):A(a)||(b=a+"");return b}a="ngClass"+a;var e;return["$parse",function(f){return{restrict:"AC",link:function(g,k,h){function l(a,b){var c=[];r(a,function(a){if(0<b||p[a])p[a]=(p[a]||0)+b,p[a]===+(0<b)&&c.push(a)});return c.join(" ")}function m(a){if(a===
194b){var c=s,c=l(c&&c.split(" "),1);h.$addClass(c)}else c=s,c=l(c&&c.split(" "),-1),h.$removeClass(c);n=a}var p=k.data("$classCounts"),n=!0,s;p||(p=T(),k.data("$classCounts",p));"ngClass"!==a&&(e||(e=f("$index",function(a){return a&1})),g.$watch(e,m));g.$watch(f(h[a],c),function(a){if(n===b){var c=s&&s.split(" "),e=a&&a.split(" "),f=d(c,e),c=d(e,c),f=l(f,-1),c=l(c,1);h.$addClass(c);h.$removeClass(f)}s=a})}}}]}function qd(a,b,d,c,e,f){return{restrict:"A",compile:function(g,k){var h=a(k[c]);return function(a,
195c){c.on(e,function(c){var e=function(){h(a,{$event:c})};if(b.$$phase)if(f)a.$evalAsync(e);else try{e()}catch(g){d(g)}else a.$apply(e)})}}}}function Rb(a,b,d,c,e,f,g,k,h){this.$modelValue=this.$viewValue=Number.NaN;this.$$rawModelValue=void 0;this.$validators={};this.$asyncValidators={};this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$untouched=!0;this.$touched=!1;this.$pristine=!0;this.$dirty=!1;this.$valid=!0;this.$invalid=!1;this.$error={};this.$$success={};this.$pending=
196void 0;this.$name=h(d.name||"",!1)(a);this.$$parentForm=lb;this.$options=Sb;this.$$updateEvents="";this.$$updateEventHandler=this.$$updateEventHandler.bind(this);this.$$parsedNgModel=e(d.ngModel);this.$$parsedNgModelAssign=this.$$parsedNgModel.assign;this.$$ngModelGet=this.$$parsedNgModel;this.$$ngModelSet=this.$$parsedNgModelAssign;this.$$pendingDebounce=null;this.$$parserValid=void 0;this.$$parserName="parse";this.$$currentValidationRunId=0;this.$$scope=a;this.$$rootScope=a.$root;this.$$attr=d;
197this.$$element=c;this.$$animate=f;this.$$timeout=g;this.$$parse=e;this.$$q=k;this.$$exceptionHandler=b;Zd(this);jh(this)}function jh(a){a.$$scope.$watch(function(b){b=a.$$ngModelGet(b);b===a.$modelValue||a.$modelValue!==a.$modelValue&&b!==b||a.$$setModelValue(b);return b})}function Lc(a){this.$$options=a}function ge(a,b){r(b,function(b,c){w(a[c])||(a[c]=b)})}function Oa(a,b){a.prop("selected",b);a.attr("selected",b)}function he(a,b,d){if(a){A(a)&&(a=new RegExp("^"+a+"$"));if(!a.test)throw F("ngPattern")("noregexp",
198b,a,za(d));return a}}function Tb(a){a=fa(a);return X(a)?-1:a}var Wb={objectMaxDepth:5,urlErrorParamsEnabled:!0},ie=/^\/(.+)\/([a-z]*)$/,ta=Object.prototype.hasOwnProperty,K=function(a){return A(a)?a.toLowerCase():a},ub=function(a){return A(a)?a.toUpperCase():a},Ca,x,rb,Ha=[].slice,Fg=[].splice,kh=[].push,la=Object.prototype.toString,Pc=Object.getPrototypeOf,pa=F("ng"),ca=C.angular||(C.angular={}),kc,pb=0;Ca=C.document.documentMode;var X=Number.isNaN||function(a){return a!==a};E.$inject=[];Ta.$inject=
199[];var ve=/^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array]$/,U=function(a){return A(a)?a.trim():a},Md=function(a){return a.replace(/([-()[\]{}+?*.$^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},Aa=function(){if(!w(Aa.rules)){var a=C.document.querySelector("[ng-csp]")||C.document.querySelector("[data-ng-csp]");if(a){var b=a.getAttribute("ng-csp")||a.getAttribute("data-ng-csp");Aa.rules={noUnsafeEval:!b||-1!==b.indexOf("no-unsafe-eval"),noInlineStyle:!b||-1!==
200b.indexOf("no-inline-style")}}else{a=Aa;try{new Function(""),b=!1}catch(d){b=!0}a.rules={noUnsafeEval:b,noInlineStyle:!1}}}return Aa.rules},qb=function(){if(w(qb.name_))return qb.name_;var a,b,d=Qa.length,c,e;for(b=0;b<d;++b)if(c=Qa[b],a=C.document.querySelector("["+c.replace(":","\\:")+"jq]")){e=a.getAttribute(c+"jq");break}return qb.name_=e},xe=/:/g,Qa=["ng-","data-ng-","ng:","x-ng-"],Be=function(a){var b=a.currentScript;if(!b)return!0;if(!(b instanceof C.HTMLScriptElement||b instanceof C.SVGScriptElement))return!1;
201b=b.attributes;return[b.getNamedItem("src"),b.getNamedItem("href"),b.getNamedItem("xlink:href")].every(function(b){if(!b)return!0;if(!b.value)return!1;var c=a.createElement("a");c.href=b.value;if(a.location.origin===c.origin)return!0;switch(c.protocol){case "http:":case "https:":case "ftp:":case "blob:":case "file:":case "data:":return!0;default:return!1}})}(C.document),Ee=/[A-Z]/g,Wc=!1,Pa=3,Ke={full:"1.7.9",major:1,minor:7,dot:9,codeName:"pollution-eradication"};Y.expando="ng339";var Ka=Y.cache=
202{},pg=1;Y._data=function(a){return this.cache[a[this.expando]]||{}};var lg=/-([a-z])/g,lh=/^-ms-/,Ab={mouseleave:"mouseout",mouseenter:"mouseover"},nc=F("jqLite"),og=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,mc=/<|&#?\w+;/,mg=/<([\w:-]+)/,ng=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,oa={option:[1,'<select multiple="multiple">',"</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>",
203"</tr></tbody></table>"],_default:[0,"",""]};oa.optgroup=oa.option;oa.tbody=oa.tfoot=oa.colgroup=oa.caption=oa.thead;oa.th=oa.td;var ug=C.Node.prototype.contains||function(a){return!!(this.compareDocumentPosition(a)&16)},Wa=Y.prototype={ready:fd,toString:function(){var a=[];r(this,function(b){a.push(""+b)});return"["+a.join(", ")+"]"},eq:function(a){return 0<=a?x(this[a]):x(this[this.length+a])},length:0,push:kh,sort:[].sort,splice:[].splice},Gb={};r("multiple selected checked disabled readOnly required open".split(" "),
204function(a){Gb[K(a)]=a});var md={};r("input select option textarea button form details".split(" "),function(a){md[a]=!0});var td={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern",ngStep:"step"};r({data:rc,removeData:qc,hasData:function(a){for(var b in Ka[a.ng339])return!0;return!1},cleanData:function(a){for(var b=0,d=a.length;b<d;b++)qc(a[b]),id(a[b])}},function(a,b){Y[b]=a});r({data:rc,inheritedData:Eb,scope:function(a){return x.data(a,"$scope")||Eb(a.parentNode||
205a,["$isolateScope","$scope"])},isolateScope:function(a){return x.data(a,"$isolateScope")||x.data(a,"$isolateScopeNoTemplate")},controller:jd,injector:function(a){return Eb(a,"$injector")},removeAttr:function(a,b){a.removeAttribute(b)},hasClass:Bb,css:function(a,b,d){b=xb(b.replace(lh,"ms-"));if(w(d))a.style[b]=d;else return a.style[b]},attr:function(a,b,d){var c=a.nodeType;if(c!==Pa&&2!==c&&8!==c&&a.getAttribute){var c=K(b),e=Gb[c];if(w(d))null===d||!1===d&&e?a.removeAttribute(b):a.setAttribute(b,
206e?c:d);else return a=a.getAttribute(b),e&&null!==a&&(a=c),null===a?void 0:a}},prop:function(a,b,d){if(w(d))a[b]=d;else return a[b]},text:function(){function a(a,d){if(z(d)){var c=a.nodeType;return 1===c||c===Pa?a.textContent:""}a.textContent=d}a.$dv="";return a}(),val:function(a,b){if(z(b)){if(a.multiple&&"select"===ua(a)){var d=[];r(a.options,function(a){a.selected&&d.push(a.value||a.text)});return d}return a.value}a.value=b},html:function(a,b){if(z(b))return a.innerHTML;yb(a,!0);a.innerHTML=b},
207empty:kd},function(a,b){Y.prototype[b]=function(b,c){var e,f,g=this.length;if(a!==kd&&z(2===a.length&&a!==Bb&&a!==jd?b:c)){if(D(b)){for(e=0;e<g;e++)if(a===rc)a(this[e],b);else for(f in b)a(this[e],f,b[f]);return this}e=a.$dv;g=z(e)?Math.min(g,1):g;for(f=0;f<g;f++){var k=a(this[f],b,c);e=e?e+k:k}return e}for(e=0;e<g;e++)a(this[e],b,c);return this}});r({removeData:qc,on:function(a,b,d,c){if(w(c))throw nc("onargs");if(lc(a)){c=zb(a,!0);var e=c.events,f=c.handle;f||(f=c.handle=rg(a,e));c=0<=b.indexOf(" ")?
208b.split(" "):[b];for(var g=c.length,k=function(b,c,g){var k=e[b];k||(k=e[b]=[],k.specialHandlerWrapper=c,"$destroy"===b||g||a.addEventListener(b,f));k.push(d)};g--;)b=c[g],Ab[b]?(k(Ab[b],tg),k(b,void 0,!0)):k(b)}},off:id,one:function(a,b,d){a=x(a);a.on(b,function e(){a.off(b,d);a.off(b,e)});a.on(b,d)},replaceWith:function(a,b){var d,c=a.parentNode;yb(a);r(new Y(b),function(b){d?c.insertBefore(b,d.nextSibling):c.replaceChild(b,a);d=b})},children:function(a){var b=[];r(a.childNodes,function(a){1===
209a.nodeType&&b.push(a)});return b},contents:function(a){return a.contentDocument||a.childNodes||[]},append:function(a,b){var d=a.nodeType;if(1===d||11===d){b=new Y(b);for(var d=0,c=b.length;d<c;d++)a.appendChild(b[d])}},prepend:function(a,b){if(1===a.nodeType){var d=a.firstChild;r(new Y(b),function(b){a.insertBefore(b,d)})}},wrap:function(a,b){var d=x(b).eq(0).clone()[0],c=a.parentNode;c&&c.replaceChild(d,a);d.appendChild(a)},remove:Fb,detach:function(a){Fb(a,!0)},after:function(a,b){var d=a,c=a.parentNode;
210if(c){b=new Y(b);for(var e=0,f=b.length;e<f;e++){var g=b[e];c.insertBefore(g,d.nextSibling);d=g}}},addClass:Db,removeClass:Cb,toggleClass:function(a,b,d){b&&r(b.split(" "),function(b){var e=d;z(e)&&(e=!Bb(a,b));(e?Db:Cb)(a,b)})},parent:function(a){return(a=a.parentNode)&&11!==a.nodeType?a:null},next:function(a){return a.nextElementSibling},find:function(a,b){return a.getElementsByTagName?a.getElementsByTagName(b):[]},clone:pc,triggerHandler:function(a,b,d){var c,e,f=b.type||b,g=zb(a);if(g=(g=g&&g.events)&&
211g[f])c={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return!0===this.defaultPrevented},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return!0===this.immediatePropagationStopped},stopPropagation:E,type:f,target:a},b.type&&(c=S(c,b)),b=ja(g),e=d?[c].concat(d):[c],r(b,function(b){c.isImmediatePropagationStopped()||b.apply(a,e)})}},function(a,b){Y.prototype[b]=function(b,c,e){for(var f,g=0,k=this.length;g<
212k;g++)z(f)?(f=a(this[g],b,c,e),w(f)&&(f=x(f))):oc(f,a(this[g],b,c,e));return w(f)?f:this}});Y.prototype.bind=Y.prototype.on;Y.prototype.unbind=Y.prototype.off;var mh=Object.create(null);nd.prototype={_idx:function(a){a!==this._lastKey&&(this._lastKey=a,this._lastIndex=this._keys.indexOf(a));return this._lastIndex},_transformKey:function(a){return X(a)?mh:a},get:function(a){a=this._transformKey(a);a=this._idx(a);if(-1!==a)return this._values[a]},has:function(a){a=this._transformKey(a);return-1!==this._idx(a)},
213set:function(a,b){a=this._transformKey(a);var d=this._idx(a);-1===d&&(d=this._lastIndex=this._keys.length);this._keys[d]=a;this._values[d]=b},delete:function(a){a=this._transformKey(a);a=this._idx(a);if(-1===a)return!1;this._keys.splice(a,1);this._values.splice(a,1);this._lastKey=NaN;this._lastIndex=-1;return!0}};var Hb=nd,jg=[function(){this.$get=[function(){return Hb}]}],wg=/^([^(]+?)=>/,xg=/^[^(]*\(\s*([^)]*)\)/m,nh=/,/,oh=/^\s*(_?)(\S+?)\1\s*$/,vg=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg,Ba=F("$injector");
214fb.$$annotate=function(a,b,d){var c;if("function"===typeof a){if(!(c=a.$inject)){c=[];if(a.length){if(b)throw A(d)&&d||(d=a.name||yg(a)),Ba("strictdi",d);b=od(a);r(b[1].split(nh),function(a){a.replace(oh,function(a,b,d){c.push(d)})})}a.$inject=c}}else H(a)?(b=a.length-1,sb(a[b],"fn"),c=a.slice(0,b)):sb(a,"fn",!0);return c};var je=F("$animate"),zf=function(){this.$get=E},Af=function(){var a=new Hb,b=[];this.$get=["$$AnimateRunner","$rootScope",function(d,c){function e(a,b,c){var d=!1;b&&(b=A(b)?b.split(" "):
215H(b)?b:[],r(b,function(b){b&&(d=!0,a[b]=c)}));return d}function f(){r(b,function(b){var c=a.get(b);if(c){var d=zg(b.attr("class")),e="",f="";r(c,function(a,b){a!==!!d[b]&&(a?e+=(e.length?" ":"")+b:f+=(f.length?" ":"")+b)});r(b,function(a){e&&Db(a,e);f&&Cb(a,f)});a.delete(b)}});b.length=0}return{enabled:E,on:E,off:E,pin:E,push:function(g,k,h,l){l&&l();h=h||{};h.from&&g.css(h.from);h.to&&g.css(h.to);if(h.addClass||h.removeClass)if(k=h.addClass,l=h.removeClass,h=a.get(g)||{},k=e(h,k,!0),l=e(h,l,!1),
216k||l)a.set(g,h),b.push(g),1===b.length&&c.$$postDigest(f);g=new d;g.complete();return g}}}]},xf=["$provide",function(a){var b=this,d=null,c=null;this.$$registeredAnimations=Object.create(null);this.register=function(c,d){if(c&&"."!==c.charAt(0))throw je("notcsel",c);var g=c+"-animation";b.$$registeredAnimations[c.substr(1)]=g;a.factory(g,d)};this.customFilter=function(a){1===arguments.length&&(c=B(a)?a:null);return c};this.classNameFilter=function(a){if(1===arguments.length&&(d=a instanceof RegExp?
217a:null)&&/[(\s|\/)]ng-animate[(\s|\/)]/.test(d.toString()))throw d=null,je("nongcls","ng-animate");return d};this.$get=["$$animateQueue",function(a){function b(a,c,d){if(d){var e;a:{for(e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){e=f;break a}}e=void 0}!e||e.parentNode||e.previousElementSibling||(d=null)}d?d.after(a):c.prepend(a)}return{on:a.on,off:a.off,pin:a.pin,enabled:a.enabled,cancel:function(a){a.cancel&&a.cancel()},enter:function(c,d,h,l){d=d&&x(d);h=h&&x(h);d=d||h.parent();b(c,d,h);return a.push(c,
218"enter",ra(l))},move:function(c,d,h,l){d=d&&x(d);h=h&&x(h);d=d||h.parent();b(c,d,h);return a.push(c,"move",ra(l))},leave:function(b,c){return a.push(b,"leave",ra(c),function(){b.remove()})},addClass:function(b,c,d){d=ra(d);d.addClass=hb(d.addclass,c);return a.push(b,"addClass",d)},removeClass:function(b,c,d){d=ra(d);d.removeClass=hb(d.removeClass,c);return a.push(b,"removeClass",d)},setClass:function(b,c,d,f){f=ra(f);f.addClass=hb(f.addClass,c);f.removeClass=hb(f.removeClass,d);return a.push(b,"setClass",
219f)},animate:function(b,c,d,f,m){m=ra(m);m.from=m.from?S(m.from,c):c;m.to=m.to?S(m.to,d):d;m.tempClasses=hb(m.tempClasses,f||"ng-inline-animate");return a.push(b,"animate",m)}}}]}],Cf=function(){this.$get=["$$rAF",function(a){function b(b){d.push(b);1<d.length||a(function(){for(var a=0;a<d.length;a++)d[a]();d=[]})}var d=[];return function(){var a=!1;b(function(){a=!0});return function(d){a?d():b(d)}}}]},Bf=function(){this.$get=["$q","$sniffer","$$animateAsyncRun","$$isDocumentHidden","$timeout",function(a,
220b,d,c,e){function f(a){this.setHost(a);var b=d();this._doneCallbacks=[];this._tick=function(a){c()?e(a,0,!1):b(a)};this._state=0}f.chain=function(a,b){function c(){if(d===a.length)b(!0);else a[d](function(a){!1===a?b(!1):(d++,c())})}var d=0;c()};f.all=function(a,b){function c(f){e=e&&f;++d===a.length&&b(e)}var d=0,e=!0;r(a,function(a){a.done(c)})};f.prototype={setHost:function(a){this.host=a||{}},done:function(a){2===this._state?a():this._doneCallbacks.push(a)},progress:E,getPromise:function(){if(!this.promise){var b=
221this;this.promise=a(function(a,c){b.done(function(b){!1===b?c():a()})})}return this.promise},then:function(a,b){return this.getPromise().then(a,b)},"catch":function(a){return this.getPromise()["catch"](a)},"finally":function(a){return this.getPromise()["finally"](a)},pause:function(){this.host.pause&&this.host.pause()},resume:function(){this.host.resume&&this.host.resume()},end:function(){this.host.end&&this.host.end();this._resolve(!0)},cancel:function(){this.host.cancel&&this.host.cancel();this._resolve(!1)},
222complete:function(a){var b=this;0===b._state&&(b._state=1,b._tick(function(){b._resolve(a)}))},_resolve:function(a){2!==this._state&&(r(this._doneCallbacks,function(b){b(a)}),this._doneCallbacks.length=0,this._state=2)}};return f}]},yf=function(){this.$get=["$$rAF","$q","$$AnimateRunner",function(a,b,d){return function(b,e){function f(){a(function(){g.addClass&&(b.addClass(g.addClass),g.addClass=null);g.removeClass&&(b.removeClass(g.removeClass),g.removeClass=null);g.to&&(b.css(g.to),g.to=null);k||
223h.complete();k=!0});return h}var g=e||{};g.$$prepared||(g=Ia(g));g.cleanupStyles&&(g.from=g.to=null);g.from&&(b.css(g.from),g.from=null);var k,h=new d;return{start:f,end:f}}}]},$=F("$compile"),tc=new function(){};Xc.$inject=["$provide","$$sanitizeUriProvider"];Jb.prototype.isFirstChange=function(){return this.previousValue===tc};var pd=/^((?:x|data)[:\-_])/i,Eg=/[:\-_]+(.)/g,vd=F("$controller"),ud=/^(\S+)(\s+as\s+([\w$]+))?$/,Jf=function(){this.$get=["$document",function(a){return function(b){b?!b.nodeType&&
224b instanceof x&&(b=b[0]):b=a[0].body;return b.offsetWidth+1}}]},wd="application/json",wc={"Content-Type":wd+";charset=utf-8"},Hg=/^\[|^\{(?!\{)/,Ig={"[":/]$/,"{":/}$/},Gg=/^\)]\}',?\n/,Kb=F("$http"),Ma=ca.$interpolateMinErr=F("$interpolate");Ma.throwNoconcat=function(a){throw Ma("noconcat",a);};Ma.interr=function(a,b){return Ma("interr",a,b.toString())};var Lg=F("$interval"),Sf=function(){this.$get=function(){function a(a){var b=function(a){b.data=a;b.called=!0};b.id=a;return b}var b=ca.callbacks,
225d={};return{createCallback:function(c){c="_"+(b.$$counter++).toString(36);var e="angular.callbacks."+c,f=a(c);d[e]=b[c]=f;return e},wasCalled:function(a){return d[a].called},getResponse:function(a){return d[a].data},removeCallback:function(a){delete b[d[a].id];delete d[a]}}}},ph=/^([^?#]*)(\?([^#]*))?(#(.*))?$/,Mg={http:80,https:443,ftp:21},jb=F("$location"),Ng=/^\s*[\\/]{2,}/,qh={$$absUrl:"",$$html5:!1,$$replace:!1,$$compose:function(){for(var a=this.$$path,b=this.$$hash,d=ye(this.$$search),b=b?
226"#"+hc(b):"",a=a.split("/"),c=a.length;c--;)a[c]=hc(a[c].replace(/%2F/g,"/"));this.$$url=a.join("/")+(d?"?"+d:"")+b;this.$$absUrl=this.$$normalizeUrl(this.$$url);this.$$urlUpdatedByLocation=!0},absUrl:Lb("$$absUrl"),url:function(a){if(z(a))return this.$$url;var b=ph.exec(a);(b[1]||""===a)&&this.path(decodeURIComponent(b[1]));(b[2]||b[1]||""===a)&&this.search(b[3]||"");this.hash(b[5]||"");return this},protocol:Lb("$$protocol"),host:Lb("$$host"),port:Lb("$$port"),path:Dd("$$path",function(a){a=null!==
227a?a.toString():"";return"/"===a.charAt(0)?a:"/"+a}),search:function(a,b){switch(arguments.length){case 0:return this.$$search;case 1:if(A(a)||W(a))a=a.toString(),this.$$search=gc(a);else if(D(a))a=Ia(a,{}),r(a,function(b,c){null==b&&delete a[c]}),this.$$search=a;else throw jb("isrcharg");break;default:z(b)||null===b?delete this.$$search[a]:this.$$search[a]=b}this.$$compose();return this},hash:Dd("$$hash",function(a){return null!==a?a.toString():""}),replace:function(){this.$$replace=!0;return this}};
228r([Cd,zc,yc],function(a){a.prototype=Object.create(qh);a.prototype.state=function(b){if(!arguments.length)return this.$$state;if(a!==yc||!this.$$html5)throw jb("nostate");this.$$state=z(b)?null:b;this.$$urlUpdatedByLocation=!0;return this}});var Ya=F("$parse"),Rg={}.constructor.prototype.valueOf,Ub=T();r("+ - * / % === !== == != < > <= >= && || ! = |".split(" "),function(a){Ub[a]=!0});var rh={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},Nb=function(a){this.options=a};Nb.prototype={constructor:Nb,
229lex:function(a){this.text=a;this.index=0;for(this.tokens=[];this.index<this.text.length;)if(a=this.text.charAt(this.index),'"'===a||"'"===a)this.readString(a);else if(this.isNumber(a)||"."===a&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdentifierStart(this.peekMultichar()))this.readIdent();else if(this.is(a,"(){}[].,;:?"))this.tokens.push({index:this.index,text:a}),this.index++;else if(this.isWhitespace(a))this.index++;else{var b=a+this.peek(),d=b+this.peek(2),c=Ub[b],e=Ub[d];Ub[a]||
230c||e?(a=e?d:c?b:a,this.tokens.push({index:this.index,text:a,operator:!0}),this.index+=a.length):this.throwError("Unexpected next character ",this.index,this.index+1)}return this.tokens},is:function(a,b){return-1!==b.indexOf(a)},peek:function(a){a=a||1;return this.index+a<this.text.length?this.text.charAt(this.index+a):!1},isNumber:function(a){return"0"<=a&&"9">=a&&"string"===typeof a},isWhitespace:function(a){return" "===a||"\r"===a||"\t"===a||"\n"===a||"\v"===a||"\u00a0"===a},isIdentifierStart:function(a){return this.options.isIdentifierStart?
231this.options.isIdentifierStart(a,this.codePointAt(a)):this.isValidIdentifierStart(a)},isValidIdentifierStart:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"===a},isIdentifierContinue:function(a){return this.options.isIdentifierContinue?this.options.isIdentifierContinue(a,this.codePointAt(a)):this.isValidIdentifierContinue(a)},isValidIdentifierContinue:function(a,b){return this.isValidIdentifierStart(a,b)||this.isNumber(a)},codePointAt:function(a){return 1===a.length?a.charCodeAt(0):
232(a.charCodeAt(0)<<10)+a.charCodeAt(1)-56613888},peekMultichar:function(){var a=this.text.charAt(this.index),b=this.peek();if(!b)return a;var d=a.charCodeAt(0),c=b.charCodeAt(0);return 55296<=d&&56319>=d&&56320<=c&&57343>=c?a+b:a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,b,d){d=d||this.index;b=w(b)?"s "+b+"-"+this.index+" ["+this.text.substring(b,d)+"]":" "+d;throw Ya("lexerr",a,b,this.text);},readNumber:function(){for(var a="",b=this.index;this.index<
233this.text.length;){var d=K(this.text.charAt(this.index));if("."===d||this.isNumber(d))a+=d;else{var c=this.peek();if("e"===d&&this.isExpOperator(c))a+=d;else if(this.isExpOperator(d)&&c&&this.isNumber(c)&&"e"===a.charAt(a.length-1))a+=d;else if(!this.isExpOperator(d)||c&&this.isNumber(c)||"e"!==a.charAt(a.length-1))break;else this.throwError("Invalid exponent")}this.index++}this.tokens.push({index:b,text:a,constant:!0,value:Number(a)})},readIdent:function(){var a=this.index;for(this.index+=this.peekMultichar().length;this.index<
234this.text.length;){var b=this.peekMultichar();if(!this.isIdentifierContinue(b))break;this.index+=b.length}this.tokens.push({index:a,text:this.text.slice(a,this.index),identifier:!0})},readString:function(a){var b=this.index;this.index++;for(var d="",c=a,e=!1;this.index<this.text.length;){var f=this.text.charAt(this.index),c=c+f;if(e)"u"===f?(e=this.text.substring(this.index+1,this.index+5),e.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+e+"]"),this.index+=4,d+=String.fromCharCode(parseInt(e,
23516))):d+=rh[f]||f,e=!1;else if("\\"===f)e=!0;else{if(f===a){this.index++;this.tokens.push({index:b,text:c,constant:!0,value:d});return}d+=f}this.index++}this.throwError("Unterminated quote",b)}};var q=function(a,b){this.lexer=a;this.options=b};q.Program="Program";q.ExpressionStatement="ExpressionStatement";q.AssignmentExpression="AssignmentExpression";q.ConditionalExpression="ConditionalExpression";q.LogicalExpression="LogicalExpression";q.BinaryExpression="BinaryExpression";q.UnaryExpression="UnaryExpression";
236q.CallExpression="CallExpression";q.MemberExpression="MemberExpression";q.Identifier="Identifier";q.Literal="Literal";q.ArrayExpression="ArrayExpression";q.Property="Property";q.ObjectExpression="ObjectExpression";q.ThisExpression="ThisExpression";q.LocalsExpression="LocalsExpression";q.NGValueParameter="NGValueParameter";q.prototype={ast:function(a){this.text=a;this.tokens=this.lexer.lex(a);a=this.program();0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]);return a},
237program:function(){for(var a=[];;)if(0<this.tokens.length&&!this.peek("}",")",";","]")&&a.push(this.expressionStatement()),!this.expect(";"))return{type:q.Program,body:a}},expressionStatement:function(){return{type:q.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var a=this.expression();this.expect("|");)a=this.filter(a);return a},expression:function(){return this.assignment()},assignment:function(){var a=this.ternary();if(this.expect("=")){if(!Hd(a))throw Ya("lval");
238a={type:q.AssignmentExpression,left:a,right:this.assignment(),operator:"="}}return a},ternary:function(){var a=this.logicalOR(),b,d;return this.expect("?")&&(b=this.expression(),this.consume(":"))?(d=this.expression(),{type:q.ConditionalExpression,test:a,alternate:b,consequent:d}):a},logicalOR:function(){for(var a=this.logicalAND();this.expect("||");)a={type:q.LogicalExpression,operator:"||",left:a,right:this.logicalAND()};return a},logicalAND:function(){for(var a=this.equality();this.expect("&&");)a=
239{type:q.LogicalExpression,operator:"&&",left:a,right:this.equality()};return a},equality:function(){for(var a=this.relational(),b;b=this.expect("==","!=","===","!==");)a={type:q.BinaryExpression,operator:b.text,left:a,right:this.relational()};return a},relational:function(){for(var a=this.additive(),b;b=this.expect("<",">","<=",">=");)a={type:q.BinaryExpression,operator:b.text,left:a,right:this.additive()};return a},additive:function(){for(var a=this.multiplicative(),b;b=this.expect("+","-");)a={type:q.BinaryExpression,
240operator:b.text,left:a,right:this.multiplicative()};return a},multiplicative:function(){for(var a=this.unary(),b;b=this.expect("*","/","%");)a={type:q.BinaryExpression,operator:b.text,left:a,right:this.unary()};return a},unary:function(){var a;return(a=this.expect("+","-","!"))?{type:q.UnaryExpression,operator:a.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var a;this.expect("(")?(a=this.filterChain(),this.consume(")")):this.expect("[")?a=this.arrayDeclaration():this.expect("{")?
241a=this.object():this.selfReferential.hasOwnProperty(this.peek().text)?a=Ia(this.selfReferential[this.consume().text]):this.options.literals.hasOwnProperty(this.peek().text)?a={type:q.Literal,value:this.options.literals[this.consume().text]}:this.peek().identifier?a=this.identifier():this.peek().constant?a=this.constant():this.throwError("not a primary expression",this.peek());for(var b;b=this.expect("(","[",".");)"("===b.text?(a={type:q.CallExpression,callee:a,arguments:this.parseArguments()},this.consume(")")):
242"["===b.text?(a={type:q.MemberExpression,object:a,property:this.expression(),computed:!0},this.consume("]")):"."===b.text?a={type:q.MemberExpression,object:a,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return a},filter:function(a){a=[a];for(var b={type:q.CallExpression,callee:this.identifier(),arguments:a,filter:!0};this.expect(":");)a.push(this.expression());return b},parseArguments:function(){var a=[];if(")"!==this.peekToken().text){do a.push(this.filterChain());while(this.expect(","))
243}return a},identifier:function(){var a=this.consume();a.identifier||this.throwError("is not a valid identifier",a);return{type:q.Identifier,name:a.text}},constant:function(){return{type:q.Literal,value:this.consume().value}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text){do{if(this.peek("]"))break;a.push(this.expression())}while(this.expect(","))}this.consume("]");return{type:q.ArrayExpression,elements:a}},object:function(){var a=[],b;if("}"!==this.peekToken().text){do{if(this.peek("}"))break;
244b={type:q.Property,kind:"init"};this.peek().constant?(b.key=this.constant(),b.computed=!1,this.consume(":"),b.value=this.expression()):this.peek().identifier?(b.key=this.identifier(),b.computed=!1,this.peek(":")?(this.consume(":"),b.value=this.expression()):b.value=b.key):this.peek("[")?(this.consume("["),b.key=this.expression(),this.consume("]"),b.computed=!0,this.consume(":"),b.value=this.expression()):this.throwError("invalid key",this.peek());a.push(b)}while(this.expect(","))}this.consume("}");
245return{type:q.ObjectExpression,properties:a}},throwError:function(a,b){throw Ya("syntax",b.text,a,b.index+1,this.text,this.text.substring(b.index));},consume:function(a){if(0===this.tokens.length)throw Ya("ueoe",this.text);var b=this.expect(a);b||this.throwError("is unexpected, expecting ["+a+"]",this.peek());return b},peekToken:function(){if(0===this.tokens.length)throw Ya("ueoe",this.text);return this.tokens[0]},peek:function(a,b,d,c){return this.peekAhead(0,a,b,d,c)},peekAhead:function(a,b,d,c,
246e){if(this.tokens.length>a){a=this.tokens[a];var f=a.text;if(f===b||f===d||f===c||f===e||!(b||d||c||e))return a}return!1},expect:function(a,b,d,c){return(a=this.peek(a,b,d,c))?(this.tokens.shift(),a):!1},selfReferential:{"this":{type:q.ThisExpression},$locals:{type:q.LocalsExpression}}};var Fd=2;Jd.prototype={compile:function(a){var b=this;this.state={nextId:0,filters:{},fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]};Z(a,b.$filter);var d="",c;this.stage="assign";if(c=Id(a))this.state.computing=
247"assign",d=this.nextId(),this.recurse(c,d),this.return_(d),d="fn.assign="+this.generateFunction("assign","s,v,l");c=Gd(a.body);b.stage="inputs";r(c,function(a,c){var d="fn"+c;b.state[d]={vars:[],body:[],own:{}};b.state.computing=d;var k=b.nextId();b.recurse(a,k);b.return_(k);b.state.inputs.push({name:d,isPure:a.isPure});a.watchId=c});this.state.computing="fn";this.stage="main";this.recurse(a);a='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+
248d+this.watchFns()+"return fn;";a=(new Function("$filter","getStringValue","ifDefined","plus",a))(this.$filter,Og,Pg,Ed);this.state=this.stage=void 0;return a},USE:"use",STRICT:"strict",watchFns:function(){var a=[],b=this.state.inputs,d=this;r(b,function(b){a.push("var "+b.name+"="+d.generateFunction(b.name,"s"));b.isPure&&a.push(b.name,".isPure="+JSON.stringify(b.isPure)+";")});b.length&&a.push("fn.inputs=["+b.map(function(a){return a.name}).join(",")+"];");return a.join("")},generateFunction:function(a,
249b){return"function("+b+"){"+this.varsPrefix(a)+this.body(a)+"};"},filterPrefix:function(){var a=[],b=this;r(this.state.filters,function(d,c){a.push(d+"=$filter("+b.escape(c)+")")});return a.length?"var "+a.join(",")+";":""},varsPrefix:function(a){return this.state[a].vars.length?"var "+this.state[a].vars.join(",")+";":""},body:function(a){return this.state[a].body.join("")},recurse:function(a,b,d,c,e,f){var g,k,h=this,l,m,p;c=c||E;if(!f&&w(a.watchId))b=b||this.nextId(),this.if_("i",this.lazyAssign(b,
250this.computedMember("i",a.watchId)),this.lazyRecurse(a,b,d,c,e,!0));else switch(a.type){case q.Program:r(a.body,function(b,c){h.recurse(b.expression,void 0,void 0,function(a){k=a});c!==a.body.length-1?h.current().body.push(k,";"):h.return_(k)});break;case q.Literal:m=this.escape(a.value);this.assign(b,m);c(b||m);break;case q.UnaryExpression:this.recurse(a.argument,void 0,void 0,function(a){k=a});m=a.operator+"("+this.ifDefined(k,0)+")";this.assign(b,m);c(m);break;case q.BinaryExpression:this.recurse(a.left,
251void 0,void 0,function(a){g=a});this.recurse(a.right,void 0,void 0,function(a){k=a});m="+"===a.operator?this.plus(g,k):"-"===a.operator?this.ifDefined(g,0)+a.operator+this.ifDefined(k,0):"("+g+")"+a.operator+"("+k+")";this.assign(b,m);c(m);break;case q.LogicalExpression:b=b||this.nextId();h.recurse(a.left,b);h.if_("&&"===a.operator?b:h.not(b),h.lazyRecurse(a.right,b));c(b);break;case q.ConditionalExpression:b=b||this.nextId();h.recurse(a.test,b);h.if_(b,h.lazyRecurse(a.alternate,b),h.lazyRecurse(a.consequent,
252b));c(b);break;case q.Identifier:b=b||this.nextId();d&&(d.context="inputs"===h.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",a.name)+"?l:s"),d.computed=!1,d.name=a.name);h.if_("inputs"===h.stage||h.not(h.getHasOwnProperty("l",a.name)),function(){h.if_("inputs"===h.stage||"s",function(){e&&1!==e&&h.if_(h.isNull(h.nonComputedMember("s",a.name)),h.lazyAssign(h.nonComputedMember("s",a.name),"{}"));h.assign(b,h.nonComputedMember("s",a.name))})},b&&h.lazyAssign(b,h.nonComputedMember("l",
253a.name)));c(b);break;case q.MemberExpression:g=d&&(d.context=this.nextId())||this.nextId();b=b||this.nextId();h.recurse(a.object,g,void 0,function(){h.if_(h.notNull(g),function(){a.computed?(k=h.nextId(),h.recurse(a.property,k),h.getStringValue(k),e&&1!==e&&h.if_(h.not(h.computedMember(g,k)),h.lazyAssign(h.computedMember(g,k),"{}")),m=h.computedMember(g,k),h.assign(b,m),d&&(d.computed=!0,d.name=k)):(e&&1!==e&&h.if_(h.isNull(h.nonComputedMember(g,a.property.name)),h.lazyAssign(h.nonComputedMember(g,
254a.property.name),"{}")),m=h.nonComputedMember(g,a.property.name),h.assign(b,m),d&&(d.computed=!1,d.name=a.property.name))},function(){h.assign(b,"undefined")});c(b)},!!e);break;case q.CallExpression:b=b||this.nextId();a.filter?(k=h.filter(a.callee.name),l=[],r(a.arguments,function(a){var b=h.nextId();h.recurse(a,b);l.push(b)}),m=k+"("+l.join(",")+")",h.assign(b,m),c(b)):(k=h.nextId(),g={},l=[],h.recurse(a.callee,k,g,function(){h.if_(h.notNull(k),function(){r(a.arguments,function(b){h.recurse(b,a.constant?
255void 0:h.nextId(),void 0,function(a){l.push(a)})});m=g.name?h.member(g.context,g.name,g.computed)+"("+l.join(",")+")":k+"("+l.join(",")+")";h.assign(b,m)},function(){h.assign(b,"undefined")});c(b)}));break;case q.AssignmentExpression:k=this.nextId();g={};this.recurse(a.left,void 0,g,function(){h.if_(h.notNull(g.context),function(){h.recurse(a.right,k);m=h.member(g.context,g.name,g.computed)+a.operator+k;h.assign(b,m);c(b||m)})},1);break;case q.ArrayExpression:l=[];r(a.elements,function(b){h.recurse(b,
256a.constant?void 0:h.nextId(),void 0,function(a){l.push(a)})});m="["+l.join(",")+"]";this.assign(b,m);c(b||m);break;case q.ObjectExpression:l=[];p=!1;r(a.properties,function(a){a.computed&&(p=!0)});p?(b=b||this.nextId(),this.assign(b,"{}"),r(a.properties,function(a){a.computed?(g=h.nextId(),h.recurse(a.key,g)):g=a.key.type===q.Identifier?a.key.name:""+a.key.value;k=h.nextId();h.recurse(a.value,k);h.assign(h.member(b,g,a.computed),k)})):(r(a.properties,function(b){h.recurse(b.value,a.constant?void 0:
257h.nextId(),void 0,function(a){l.push(h.escape(b.key.type===q.Identifier?b.key.name:""+b.key.value)+":"+a)})}),m="{"+l.join(",")+"}",this.assign(b,m));c(b||m);break;case q.ThisExpression:this.assign(b,"s");c(b||"s");break;case q.LocalsExpression:this.assign(b,"l");c(b||"l");break;case q.NGValueParameter:this.assign(b,"v"),c(b||"v")}},getHasOwnProperty:function(a,b){var d=a+"."+b,c=this.current().own;c.hasOwnProperty(d)||(c[d]=this.nextId(!1,a+"&&("+this.escape(b)+" in "+a+")"));return c[d]},assign:function(a,
258b){if(a)return this.current().body.push(a,"=",b,";"),a},filter:function(a){this.state.filters.hasOwnProperty(a)||(this.state.filters[a]=this.nextId(!0));return this.state.filters[a]},ifDefined:function(a,b){return"ifDefined("+a+","+this.escape(b)+")"},plus:function(a,b){return"plus("+a+","+b+")"},return_:function(a){this.current().body.push("return ",a,";")},if_:function(a,b,d){if(!0===a)b();else{var c=this.current().body;c.push("if(",a,"){");b();c.push("}");d&&(c.push("else{"),d(),c.push("}"))}},
259not:function(a){return"!("+a+")"},isNull:function(a){return a+"==null"},notNull:function(a){return a+"!=null"},nonComputedMember:function(a,b){var d=/[^$_a-zA-Z0-9]/g;return/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(b)?a+"."+b:a+'["'+b.replace(d,this.stringEscapeFn)+'"]'},computedMember:function(a,b){return a+"["+b+"]"},member:function(a,b,d){return d?this.computedMember(a,b):this.nonComputedMember(a,b)},getStringValue:function(a){this.assign(a,"getStringValue("+a+")")},lazyRecurse:function(a,b,d,c,e,f){var g=
260this;return function(){g.recurse(a,b,d,c,e,f)}},lazyAssign:function(a,b){var d=this;return function(){d.assign(a,b)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)},escape:function(a){if(A(a))return"'"+a.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(W(a))return a.toString();if(!0===a)return"true";if(!1===a)return"false";if(null===a)return"null";if("undefined"===typeof a)return"undefined";throw Ya("esc");},nextId:function(a,
261b){var d="v"+this.state.nextId++;a||this.current().vars.push(d+(b?"="+b:""));return d},current:function(){return this.state[this.state.computing]}};Kd.prototype={compile:function(a){var b=this;Z(a,b.$filter);var d,c;if(d=Id(a))c=this.recurse(d);d=Gd(a.body);var e;d&&(e=[],r(d,function(a,c){var d=b.recurse(a);d.isPure=a.isPure;a.input=d;e.push(d);a.watchId=c}));var f=[];r(a.body,function(a){f.push(b.recurse(a.expression))});a=0===a.body.length?E:1===a.body.length?f[0]:function(a,b){var c;r(f,function(d){c=
262d(a,b)});return c};c&&(a.assign=function(a,b,d){return c(a,d,b)});e&&(a.inputs=e);return a},recurse:function(a,b,d){var c,e,f=this,g;if(a.input)return this.inputs(a.input,a.watchId);switch(a.type){case q.Literal:return this.value(a.value,b);case q.UnaryExpression:return e=this.recurse(a.argument),this["unary"+a.operator](e,b);case q.BinaryExpression:return c=this.recurse(a.left),e=this.recurse(a.right),this["binary"+a.operator](c,e,b);case q.LogicalExpression:return c=this.recurse(a.left),e=this.recurse(a.right),
263this["binary"+a.operator](c,e,b);case q.ConditionalExpression:return this["ternary?:"](this.recurse(a.test),this.recurse(a.alternate),this.recurse(a.consequent),b);case q.Identifier:return f.identifier(a.name,b,d);case q.MemberExpression:return c=this.recurse(a.object,!1,!!d),a.computed||(e=a.property.name),a.computed&&(e=this.recurse(a.property)),a.computed?this.computedMember(c,e,b,d):this.nonComputedMember(c,e,b,d);case q.CallExpression:return g=[],r(a.arguments,function(a){g.push(f.recurse(a))}),
264a.filter&&(e=this.$filter(a.callee.name)),a.filter||(e=this.recurse(a.callee,!0)),a.filter?function(a,c,d,f){for(var p=[],n=0;n<g.length;++n)p.push(g[n](a,c,d,f));a=e.apply(void 0,p,f);return b?{context:void 0,name:void 0,value:a}:a}:function(a,c,d,f){var p=e(a,c,d,f),n;if(null!=p.value){n=[];for(var s=0;s<g.length;++s)n.push(g[s](a,c,d,f));n=p.value.apply(p.context,n)}return b?{value:n}:n};case q.AssignmentExpression:return c=this.recurse(a.left,!0,1),e=this.recurse(a.right),function(a,d,f,g){var p=
265c(a,d,f,g);a=e(a,d,f,g);p.context[p.name]=a;return b?{value:a}:a};case q.ArrayExpression:return g=[],r(a.elements,function(a){g.push(f.recurse(a))}),function(a,c,d,e){for(var f=[],n=0;n<g.length;++n)f.push(g[n](a,c,d,e));return b?{value:f}:f};case q.ObjectExpression:return g=[],r(a.properties,function(a){a.computed?g.push({key:f.recurse(a.key),computed:!0,value:f.recurse(a.value)}):g.push({key:a.key.type===q.Identifier?a.key.name:""+a.key.value,computed:!1,value:f.recurse(a.value)})}),function(a,
266c,d,e){for(var f={},n=0;n<g.length;++n)g[n].computed?f[g[n].key(a,c,d,e)]=g[n].value(a,c,d,e):f[g[n].key]=g[n].value(a,c,d,e);return b?{value:f}:f};case q.ThisExpression:return function(a){return b?{value:a}:a};case q.LocalsExpression:return function(a,c){return b?{value:c}:c};case q.NGValueParameter:return function(a,c,d){return b?{value:d}:d}}},"unary+":function(a,b){return function(d,c,e,f){d=a(d,c,e,f);d=w(d)?+d:0;return b?{value:d}:d}},"unary-":function(a,b){return function(d,c,e,f){d=a(d,c,
267e,f);d=w(d)?-d:-0;return b?{value:d}:d}},"unary!":function(a,b){return function(d,c,e,f){d=!a(d,c,e,f);return b?{value:d}:d}},"binary+":function(a,b,d){return function(c,e,f,g){var k=a(c,e,f,g);c=b(c,e,f,g);k=Ed(k,c);return d?{value:k}:k}},"binary-":function(a,b,d){return function(c,e,f,g){var k=a(c,e,f,g);c=b(c,e,f,g);k=(w(k)?k:0)-(w(c)?c:0);return d?{value:k}:k}},"binary*":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)*b(c,e,f,g);return d?{value:c}:c}},"binary/":function(a,b,d){return function(c,
268e,f,g){c=a(c,e,f,g)/b(c,e,f,g);return d?{value:c}:c}},"binary%":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)%b(c,e,f,g);return d?{value:c}:c}},"binary===":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)===b(c,e,f,g);return d?{value:c}:c}},"binary!==":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)!==b(c,e,f,g);return d?{value:c}:c}},"binary==":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)==b(c,e,f,g);return d?{value:c}:c}},"binary!=":function(a,b,d){return function(c,
269e,f,g){c=a(c,e,f,g)!=b(c,e,f,g);return d?{value:c}:c}},"binary<":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)<b(c,e,f,g);return d?{value:c}:c}},"binary>":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)>b(c,e,f,g);return d?{value:c}:c}},"binary<=":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)<=b(c,e,f,g);return d?{value:c}:c}},"binary>=":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)>=b(c,e,f,g);return d?{value:c}:c}},"binary&&":function(a,b,d){return function(c,e,f,g){c=
270a(c,e,f,g)&&b(c,e,f,g);return d?{value:c}:c}},"binary||":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)||b(c,e,f,g);return d?{value:c}:c}},"ternary?:":function(a,b,d,c){return function(e,f,g,k){e=a(e,f,g,k)?b(e,f,g,k):d(e,f,g,k);return c?{value:e}:e}},value:function(a,b){return function(){return b?{context:void 0,name:void 0,value:a}:a}},identifier:function(a,b,d){return function(c,e,f,g){c=e&&a in e?e:c;d&&1!==d&&c&&null==c[a]&&(c[a]={});e=c?c[a]:void 0;return b?{context:c,name:a,value:e}:
271e}},computedMember:function(a,b,d,c){return function(e,f,g,k){var h=a(e,f,g,k),l,m;null!=h&&(l=b(e,f,g,k),l+="",c&&1!==c&&h&&!h[l]&&(h[l]={}),m=h[l]);return d?{context:h,name:l,value:m}:m}},nonComputedMember:function(a,b,d,c){return function(e,f,g,k){e=a(e,f,g,k);c&&1!==c&&e&&null==e[b]&&(e[b]={});f=null!=e?e[b]:void 0;return d?{context:e,name:b,value:f}:f}},inputs:function(a,b){return function(d,c,e,f){return f?f[b]:a(d,c,e)}}};Mb.prototype={constructor:Mb,parse:function(a){a=this.getAst(a);var b=
272this.astCompiler.compile(a.ast),d=a.ast;b.literal=0===d.body.length||1===d.body.length&&(d.body[0].expression.type===q.Literal||d.body[0].expression.type===q.ArrayExpression||d.body[0].expression.type===q.ObjectExpression);b.constant=a.ast.constant;b.oneTime=a.oneTime;return b},getAst:function(a){var b=!1;a=a.trim();":"===a.charAt(0)&&":"===a.charAt(1)&&(b=!0,a=a.substring(2));return{ast:this.ast.ast(a),oneTime:b}}};var Ea=F("$sce"),V={HTML:"html",CSS:"css",MEDIA_URL:"mediaUrl",URL:"url",RESOURCE_URL:"resourceUrl",
273JS:"js"},Cc=/_([a-z])/g,Ug=F("$templateRequest"),Vg=F("$timeout"),aa=C.document.createElement("a"),Od=ga(C.location.href),Na;aa.href="http://[::1]";var Wg="[::1]"===aa.hostname;Pd.$inject=["$document"];dd.$inject=["$provide"];var Wd=22,Vd=".",Ec="0";Qd.$inject=["$locale"];Sd.$inject=["$locale"];var gh={yyyy:ea("FullYear",4,0,!1,!0),yy:ea("FullYear",2,0,!0,!0),y:ea("FullYear",1,0,!1,!0),MMMM:kb("Month"),MMM:kb("Month",!0),MM:ea("Month",2,1),M:ea("Month",1,1),LLLL:kb("Month",!1,!0),dd:ea("Date",2),
274d:ea("Date",1),HH:ea("Hours",2),H:ea("Hours",1),hh:ea("Hours",2,-12),h:ea("Hours",1,-12),mm:ea("Minutes",2),m:ea("Minutes",1),ss:ea("Seconds",2),s:ea("Seconds",1),sss:ea("Milliseconds",3),EEEE:kb("Day"),EEE:kb("Day",!0),a:function(a,b){return 12>a.getHours()?b.AMPMS[0]:b.AMPMS[1]},Z:function(a,b,d){a=-1*d;return a=(0<=a?"+":"")+(Ob(Math[0<a?"floor":"ceil"](a/60),2)+Ob(Math.abs(a%60),2))},ww:Yd(2),w:Yd(1),G:Fc,GG:Fc,GGG:Fc,GGGG:function(a,b){return 0>=a.getFullYear()?b.ERANAMES[0]:b.ERANAMES[1]}},
275fh=/((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))([\s\S]*)/,eh=/^-?\d+$/;Rd.$inject=["$locale"];var $g=ia(K),ah=ia(ub);Td.$inject=["$parse"];var Me=ia({restrict:"E",compile:function(a,b){if(!b.href&&!b.xlinkHref)return function(a,b){if("a"===b[0].nodeName.toLowerCase()){var e="[object SVGAnimatedString]"===la.call(b.prop("href"))?"xlink:href":"href";b.on("click",function(a){b.attr(e)||a.preventDefault()})}}}}),vb={};r(Gb,function(a,b){function d(a,d,e){a.$watch(e[c],
276function(a){e.$set(b,!!a)})}if("multiple"!==a){var c=wa("ng-"+b),e=d;"checked"===a&&(e=function(a,b,e){e.ngModel!==e[c]&&d(a,b,e)});vb[c]=function(){return{restrict:"A",priority:100,link:e}}}});r(td,function(a,b){vb[b]=function(){return{priority:100,link:function(a,c,e){if("ngPattern"===b&&"/"===e.ngPattern.charAt(0)&&(c=e.ngPattern.match(ie))){e.$set("ngPattern",new RegExp(c[1],c[2]));return}a.$watch(e[b],function(a){e.$set(b,a)})}}}});r(["src","srcset","href"],function(a){var b=wa("ng-"+a);vb[b]=
277["$sce",function(d){return{priority:99,link:function(c,e,f){var g=a,k=a;"href"===a&&"[object SVGAnimatedString]"===la.call(e.prop("href"))&&(k="xlinkHref",f.$attr[k]="xlink:href",g=null);f.$set(b,d.getTrustedMediaUrl(f[b]));f.$observe(b,function(b){b?(f.$set(k,b),Ca&&g&&e.prop(g,f[k])):"href"===a&&f.$set(k,null)})}}}]});var lb={$addControl:E,$getControls:ia([]),$$renameControl:function(a,b){a.$name=b},$removeControl:E,$setValidity:E,$setDirty:E,$setPristine:E,$setSubmitted:E,$$setSubmitted:E};Pb.$inject=
278["$element","$attrs","$scope","$animate","$interpolate"];Pb.prototype={$rollbackViewValue:function(){r(this.$$controls,function(a){a.$rollbackViewValue()})},$commitViewValue:function(){r(this.$$controls,function(a){a.$commitViewValue()})},$addControl:function(a){Ja(a.$name,"input");this.$$controls.push(a);a.$name&&(this[a.$name]=a);a.$$parentForm=this},$getControls:function(){return ja(this.$$controls)},$$renameControl:function(a,b){var d=a.$name;this[d]===a&&delete this[d];this[b]=a;a.$name=b},$removeControl:function(a){a.$name&&
279this[a.$name]===a&&delete this[a.$name];r(this.$pending,function(b,d){this.$setValidity(d,null,a)},this);r(this.$error,function(b,d){this.$setValidity(d,null,a)},this);r(this.$$success,function(b,d){this.$setValidity(d,null,a)},this);cb(this.$$controls,a);a.$$parentForm=lb},$setDirty:function(){this.$$animate.removeClass(this.$$element,Za);this.$$animate.addClass(this.$$element,Vb);this.$dirty=!0;this.$pristine=!1;this.$$parentForm.$setDirty()},$setPristine:function(){this.$$animate.setClass(this.$$element,
280Za,Vb+" ng-submitted");this.$dirty=!1;this.$pristine=!0;this.$submitted=!1;r(this.$$controls,function(a){a.$setPristine()})},$setUntouched:function(){r(this.$$controls,function(a){a.$setUntouched()})},$setSubmitted:function(){for(var a=this;a.$$parentForm&&a.$$parentForm!==lb;)a=a.$$parentForm;a.$$setSubmitted()},$$setSubmitted:function(){this.$$animate.addClass(this.$$element,"ng-submitted");this.$submitted=!0;r(this.$$controls,function(a){a.$$setSubmitted&&a.$$setSubmitted()})}};ae({clazz:Pb,set:function(a,
281b,d){var c=a[b];c?-1===c.indexOf(d)&&c.push(d):a[b]=[d]},unset:function(a,b,d){var c=a[b];c&&(cb(c,d),0===c.length&&delete a[b])}});var ke=function(a){return["$timeout","$parse",function(b,d){function c(a){return""===a?d('this[""]').assign:d(a).assign||E}return{name:"form",restrict:a?"EAC":"E",require:["form","^^?form"],controller:Pb,compile:function(d,f){d.addClass(Za).addClass(mb);var g=f.name?"name":a&&f.ngForm?"ngForm":!1;return{pre:function(a,d,e,f){var p=f[0];if(!("action"in e)){var n=function(b){a.$apply(function(){p.$commitViewValue();
282p.$setSubmitted()});b.preventDefault()};d[0].addEventListener("submit",n);d.on("$destroy",function(){b(function(){d[0].removeEventListener("submit",n)},0,!1)})}(f[1]||p.$$parentForm).$addControl(p);var s=g?c(p.$name):E;g&&(s(a,p),e.$observe(g,function(b){p.$name!==b&&(s(a,void 0),p.$$parentForm.$$renameControl(p,b),s=c(p.$name),s(a,p))}));d.on("$destroy",function(){p.$$parentForm.$removeControl(p);s(a,void 0);S(p,lb)})}}}}}]},Ne=ke(),Ze=ke(!0),hh=/^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/,
283sh=/^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:/?#]+|\[[a-f\d:]+])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i,th=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/,ih=/^\s*(-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,le=/^(\d{4,})-(\d{2})-(\d{2})$/,me=/^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Mc=/^(\d{4,})-W(\d\d)$/,ne=/^(\d{4,})-(\d\d)$/,
284oe=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,ce=T();r(["date","datetime-local","month","time","week"],function(a){ce[a]=!0});var pe={text:function(a,b,d,c,e,f){Sa(a,b,d,c,e,f);Hc(c)},date:nb("date",le,Qb(le,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":nb("datetimelocal",me,Qb(me,"yyyy MM dd HH mm ss sss".split(" ")),"yyyy-MM-ddTHH:mm:ss.sss"),time:nb("time",oe,Qb(oe,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:nb("week",Mc,function(a,b){if(ha(a))return a;if(A(a)){Mc.lastIndex=0;var d=Mc.exec(a);
285if(d){var c=+d[1],e=+d[2],f=d=0,g=0,k=0,h=Xd(c),e=7*(e-1);b&&(d=b.getHours(),f=b.getMinutes(),g=b.getSeconds(),k=b.getMilliseconds());return new Date(c,0,h.getDate()+e,d,f,g,k)}}return NaN},"yyyy-Www"),month:nb("month",ne,Qb(ne,["yyyy","MM"]),"yyyy-MM"),number:function(a,b,d,c,e,f,g,k){Ic(a,b,d,c,"number");de(c);Sa(a,b,d,c,e,f);var h;if(w(d.min)||d.ngMin){var l=d.min||k(d.ngMin)(a);h=na(l);c.$validators.min=function(a,b){return c.$isEmpty(b)||z(h)||b>=h};d.$observe("min",function(a){a!==l&&(h=na(a),
286l=a,c.$validate())})}if(w(d.max)||d.ngMax){var m=d.max||k(d.ngMax)(a),p=na(m);c.$validators.max=function(a,b){return c.$isEmpty(b)||z(p)||b<=p};d.$observe("max",function(a){a!==m&&(p=na(a),m=a,c.$validate())})}if(w(d.step)||d.ngStep){var n=d.step||k(d.ngStep)(a),s=na(n);c.$validators.step=function(a,b){return c.$isEmpty(b)||z(s)||ee(b,h||0,s)};d.$observe("step",function(a){a!==n&&(s=na(a),n=a,c.$validate())})}},url:function(a,b,d,c,e,f){Sa(a,b,d,c,e,f);Hc(c);c.$validators.url=function(a,b){var d=
287a||b;return c.$isEmpty(d)||sh.test(d)}},email:function(a,b,d,c,e,f){Sa(a,b,d,c,e,f);Hc(c);c.$validators.email=function(a,b){var d=a||b;return c.$isEmpty(d)||th.test(d)}},radio:function(a,b,d,c){var e=!d.ngTrim||"false"!==U(d.ngTrim);z(d.name)&&b.attr("name",++pb);b.on("change",function(a){var g;b[0].checked&&(g=d.value,e&&(g=U(g)),c.$setViewValue(g,a&&a.type))});c.$render=function(){var a=d.value;e&&(a=U(a));b[0].checked=a===c.$viewValue};d.$observe("value",c.$render)},range:function(a,b,d,c,e,f){function g(a,
288c){b.attr(a,d[a]);var e=d[a];d.$observe(a,function(a){a!==e&&(e=a,c(a))})}function k(a){p=na(a);X(c.$modelValue)||(m?(a=b.val(),p>a&&(a=p,b.val(a)),c.$setViewValue(a)):c.$validate())}function h(a){n=na(a);X(c.$modelValue)||(m?(a=b.val(),n<a&&(b.val(n),a=n<p?p:n),c.$setViewValue(a)):c.$validate())}function l(a){s=na(a);X(c.$modelValue)||(m?c.$viewValue!==b.val()&&c.$setViewValue(b.val()):c.$validate())}Ic(a,b,d,c,"range");de(c);Sa(a,b,d,c,e,f);var m=c.$$hasNativeValidators&&"range"===b[0].type,p=m?
2890:void 0,n=m?100:void 0,s=m?1:void 0,r=b[0].validity;a=w(d.min);e=w(d.max);f=w(d.step);var q=c.$render;c.$render=m&&w(r.rangeUnderflow)&&w(r.rangeOverflow)?function(){q();c.$setViewValue(b.val())}:q;a&&(p=na(d.min),c.$validators.min=m?function(){return!0}:function(a,b){return c.$isEmpty(b)||z(p)||b>=p},g("min",k));e&&(n=na(d.max),c.$validators.max=m?function(){return!0}:function(a,b){return c.$isEmpty(b)||z(n)||b<=n},g("max",h));f&&(s=na(d.step),c.$validators.step=m?function(){return!r.stepMismatch}:
290function(a,b){return c.$isEmpty(b)||z(s)||ee(b,p||0,s)},g("step",l))},checkbox:function(a,b,d,c,e,f,g,k){var h=fe(k,a,"ngTrueValue",d.ngTrueValue,!0),l=fe(k,a,"ngFalseValue",d.ngFalseValue,!1);b.on("change",function(a){c.$setViewValue(b[0].checked,a&&a.type)});c.$render=function(){b[0].checked=c.$viewValue};c.$isEmpty=function(a){return!1===a};c.$formatters.push(function(a){return va(a,h)});c.$parsers.push(function(a){return a?h:l})},hidden:E,button:E,submit:E,reset:E,file:E},Yc=["$browser","$sniffer",
291"$filter","$parse",function(a,b,d,c){return{restrict:"E",require:["?ngModel"],link:{pre:function(e,f,g,k){k[0]&&(pe[K(g.type)]||pe.text)(e,f,g,k[0],b,a,d,c)}}}}],vf=function(){var a={configurable:!0,enumerable:!1,get:function(){return this.getAttribute("value")||""},set:function(a){this.setAttribute("value",a)}};return{restrict:"E",priority:200,compile:function(b,d){if("hidden"===K(d.type))return{pre:function(b,d,f,g){b=d[0];b.parentNode&&b.parentNode.insertBefore(b,b.nextSibling);Object.defineProperty&&
292Object.defineProperty(b,"value",a)}}}}},uh=/^(true|false|\d+)$/,sf=function(){function a(a,d,c){var e=w(c)?c:9===Ca?"":null;a.prop("value",e);d.$set("value",c)}return{restrict:"A",priority:100,compile:function(b,d){return uh.test(d.ngValue)?function(b,d,f){b=b.$eval(f.ngValue);a(d,f,b)}:function(b,d,f){b.$watch(f.ngValue,function(b){a(d,f,b)})}}}},Re=["$compile",function(a){return{restrict:"AC",compile:function(b){a.$$addBindingClass(b);return function(b,c,e){a.$$addBindingInfo(c,e.ngBind);c=c[0];
293b.$watch(e.ngBind,function(a){c.textContent=ic(a)})}}}}],Te=["$interpolate","$compile",function(a,b){return{compile:function(d){b.$$addBindingClass(d);return function(c,d,f){c=a(d.attr(f.$attr.ngBindTemplate));b.$$addBindingInfo(d,c.expressions);d=d[0];f.$observe("ngBindTemplate",function(a){d.textContent=z(a)?"":a})}}}}],Se=["$sce","$parse","$compile",function(a,b,d){return{restrict:"A",compile:function(c,e){var f=b(e.ngBindHtml),g=b(e.ngBindHtml,function(b){return a.valueOf(b)});d.$$addBindingClass(c);
294return function(b,c,e){d.$$addBindingInfo(c,e.ngBindHtml);b.$watch(g,function(){var d=f(b);c.html(a.getTrustedHtml(d)||"")})}}}}],rf=ia({restrict:"A",require:"ngModel",link:function(a,b,d,c){c.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),Ue=Kc("",!0),We=Kc("Odd",0),Ve=Kc("Even",1),Xe=Ra({compile:function(a,b){b.$set("ngCloak",void 0);a.removeClass("ng-cloak")}}),Ye=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],cd={},vh={blur:!0,focus:!0};r("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),
295function(a){var b=wa("ng-"+a);cd[b]=["$parse","$rootScope","$exceptionHandler",function(d,c,e){return qd(d,c,e,b,a,vh[a])}]});var af=["$animate","$compile",function(a,b){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(d,c,e,f,g){var k,h,l;d.$watch(e.ngIf,function(d){d?h||g(function(d,f){h=f;d[d.length++]=b.$$createComment("end ngIf",e.ngIf);k={clone:d};a.enter(d,c.parent(),c)}):(l&&(l.remove(),l=null),h&&(h.$destroy(),h=null),k&&(l=tb(k.clone),
296a.leave(l).done(function(a){!1!==a&&(l=null)}),k=null))})}}}],bf=["$templateRequest","$anchorScroll","$animate",function(a,b,d){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:ca.noop,compile:function(c,e){var f=e.ngInclude||e.src,g=e.onload||"",k=e.autoscroll;return function(c,e,m,p,n){var r=0,q,t,x,v=function(){t&&(t.remove(),t=null);q&&(q.$destroy(),q=null);x&&(d.leave(x).done(function(a){!1!==a&&(t=null)}),t=x,x=null)};c.$watch(f,function(f){var m=function(a){!1===
297a||!w(k)||k&&!c.$eval(k)||b()},t=++r;f?(a(f,!0).then(function(a){if(!c.$$destroyed&&t===r){var b=c.$new();p.template=a;a=n(b,function(a){v();d.enter(a,null,e).done(m)});q=b;x=a;q.$emit("$includeContentLoaded",f);c.$eval(g)}},function(){c.$$destroyed||t!==r||(v(),c.$emit("$includeContentError",f))}),c.$emit("$includeContentRequested",f)):(v(),p.template=null)})}}}}],uf=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(b,d,c,e){la.call(d[0]).match(/SVG/)?
298(d.empty(),a(ed(e.template,C.document).childNodes)(b,function(a){d.append(a)},{futureParentElement:d})):(d.html(e.template),a(d.contents())(b))}}}],cf=Ra({priority:450,compile:function(){return{pre:function(a,b,d){a.$eval(d.ngInit)}}}}),qf=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,b,d,c){var e=d.ngList||", ",f="false"!==d.ngTrim,g=f?U(e):e;c.$parsers.push(function(a){if(!z(a)){var b=[];a&&r(a.split(g),function(a){a&&b.push(f?U(a):a)});return b}});c.$formatters.push(function(a){if(H(a))return a.join(e)});
299c.$isEmpty=function(a){return!a||!a.length}}}},mb="ng-valid",$d="ng-invalid",Za="ng-pristine",Vb="ng-dirty",ob=F("ngModel");Rb.$inject="$scope $exceptionHandler $attrs $element $parse $animate $timeout $q $interpolate".split(" ");Rb.prototype={$$initGetterSetters:function(){if(this.$options.getOption("getterSetter")){var a=this.$$parse(this.$$attr.ngModel+"()"),b=this.$$parse(this.$$attr.ngModel+"($$$p)");this.$$ngModelGet=function(b){var c=this.$$parsedNgModel(b);B(c)&&(c=a(b));return c};this.$$ngModelSet=
300function(a,c){B(this.$$parsedNgModel(a))?b(a,{$$$p:c}):this.$$parsedNgModelAssign(a,c)}}else if(!this.$$parsedNgModel.assign)throw ob("nonassign",this.$$attr.ngModel,za(this.$$element));},$render:E,$isEmpty:function(a){return z(a)||""===a||null===a||a!==a},$$updateEmptyClasses:function(a){this.$isEmpty(a)?(this.$$animate.removeClass(this.$$element,"ng-not-empty"),this.$$animate.addClass(this.$$element,"ng-empty")):(this.$$animate.removeClass(this.$$element,"ng-empty"),this.$$animate.addClass(this.$$element,
301"ng-not-empty"))},$setPristine:function(){this.$dirty=!1;this.$pristine=!0;this.$$animate.removeClass(this.$$element,Vb);this.$$animate.addClass(this.$$element,Za)},$setDirty:function(){this.$dirty=!0;this.$pristine=!1;this.$$animate.removeClass(this.$$element,Za);this.$$animate.addClass(this.$$element,Vb);this.$$parentForm.$setDirty()},$setUntouched:function(){this.$touched=!1;this.$untouched=!0;this.$$animate.setClass(this.$$element,"ng-untouched","ng-touched")},$setTouched:function(){this.$touched=
302!0;this.$untouched=!1;this.$$animate.setClass(this.$$element,"ng-touched","ng-untouched")},$rollbackViewValue:function(){this.$$timeout.cancel(this.$$pendingDebounce);this.$viewValue=this.$$lastCommittedViewValue;this.$render()},$validate:function(){if(!X(this.$modelValue)){var a=this.$$lastCommittedViewValue,b=this.$$rawModelValue,d=this.$valid,c=this.$modelValue,e=this.$options.getOption("allowInvalid"),f=this;this.$$runValidators(b,a,function(a){e||d===a||(f.$modelValue=a?b:void 0,f.$modelValue!==
303c&&f.$$writeModelToScope())})}},$$runValidators:function(a,b,d){function c(){var c=!0;r(h.$validators,function(d,e){var g=Boolean(d(a,b));c=c&&g;f(e,g)});return c?!0:(r(h.$asyncValidators,function(a,b){f(b,null)}),!1)}function e(){var c=[],d=!0;r(h.$asyncValidators,function(e,g){var h=e(a,b);if(!h||!B(h.then))throw ob("nopromise",h);f(g,void 0);c.push(h.then(function(){f(g,!0)},function(){d=!1;f(g,!1)}))});c.length?h.$$q.all(c).then(function(){g(d)},E):g(!0)}function f(a,b){k===h.$$currentValidationRunId&&
304h.$setValidity(a,b)}function g(a){k===h.$$currentValidationRunId&&d(a)}this.$$currentValidationRunId++;var k=this.$$currentValidationRunId,h=this;(function(){var a=h.$$parserName;if(z(h.$$parserValid))f(a,null);else return h.$$parserValid||(r(h.$validators,function(a,b){f(b,null)}),r(h.$asyncValidators,function(a,b){f(b,null)})),f(a,h.$$parserValid),h.$$parserValid;return!0})()?c()?e():g(!1):g(!1)},$commitViewValue:function(){var a=this.$viewValue;this.$$timeout.cancel(this.$$pendingDebounce);if(this.$$lastCommittedViewValue!==
305a||""===a&&this.$$hasNativeValidators)this.$$updateEmptyClasses(a),this.$$lastCommittedViewValue=a,this.$pristine&&this.$setDirty(),this.$$parseAndValidate()},$$parseAndValidate:function(){var a=this.$$lastCommittedViewValue,b=this;this.$$parserValid=z(a)?void 0:!0;this.$setValidity(this.$$parserName,null);this.$$parserName="parse";if(this.$$parserValid)for(var d=0;d<this.$parsers.length;d++)if(a=this.$parsers[d](a),z(a)){this.$$parserValid=!1;break}X(this.$modelValue)&&(this.$modelValue=this.$$ngModelGet(this.$$scope));
306var c=this.$modelValue,e=this.$options.getOption("allowInvalid");this.$$rawModelValue=a;e&&(this.$modelValue=a,b.$modelValue!==c&&b.$$writeModelToScope());this.$$runValidators(a,this.$$lastCommittedViewValue,function(d){e||(b.$modelValue=d?a:void 0,b.$modelValue!==c&&b.$$writeModelToScope())})},$$writeModelToScope:function(){this.$$ngModelSet(this.$$scope,this.$modelValue);r(this.$viewChangeListeners,function(a){try{a()}catch(b){this.$$exceptionHandler(b)}},this)},$setViewValue:function(a,b){this.$viewValue=
307a;this.$options.getOption("updateOnDefault")&&this.$$debounceViewValueCommit(b)},$$debounceViewValueCommit:function(a){var b=this.$options.getOption("debounce");W(b[a])?b=b[a]:W(b["default"])&&-1===this.$options.getOption("updateOn").indexOf(a)?b=b["default"]:W(b["*"])&&(b=b["*"]);this.$$timeout.cancel(this.$$pendingDebounce);var d=this;0<b?this.$$pendingDebounce=this.$$timeout(function(){d.$commitViewValue()},b):this.$$rootScope.$$phase?this.$commitViewValue():this.$$scope.$apply(function(){d.$commitViewValue()})},
308$overrideModelOptions:function(a){this.$options=this.$options.createChild(a);this.$$setUpdateOnEvents()},$processModelValue:function(){var a=this.$$format();this.$viewValue!==a&&(this.$$updateEmptyClasses(a),this.$viewValue=this.$$lastCommittedViewValue=a,this.$render(),this.$$runValidators(this.$modelValue,this.$viewValue,E))},$$format:function(){for(var a=this.$formatters,b=a.length,d=this.$modelValue;b--;)d=a[b](d);return d},$$setModelValue:function(a){this.$modelValue=this.$$rawModelValue=a;this.$$parserValid=
309void 0;this.$processModelValue()},$$setUpdateOnEvents:function(){this.$$updateEvents&&this.$$element.off(this.$$updateEvents,this.$$updateEventHandler);if(this.$$updateEvents=this.$options.getOption("updateOn"))this.$$element.on(this.$$updateEvents,this.$$updateEventHandler)},$$updateEventHandler:function(a){this.$$debounceViewValueCommit(a&&a.type)}};ae({clazz:Rb,set:function(a,b){a[b]=!0},unset:function(a,b){delete a[b]}});var pf=["$rootScope",function(a){return{restrict:"A",require:["ngModel",
310"^?form","^?ngModelOptions"],controller:Rb,priority:1,compile:function(b){b.addClass(Za).addClass("ng-untouched").addClass(mb);return{pre:function(a,b,e,f){var g=f[0];b=f[1]||g.$$parentForm;if(f=f[2])g.$options=f.$options;g.$$initGetterSetters();b.$addControl(g);e.$observe("name",function(a){g.$name!==a&&g.$$parentForm.$$renameControl(g,a)});a.$on("$destroy",function(){g.$$parentForm.$removeControl(g)})},post:function(b,c,e,f){function g(){k.$setTouched()}var k=f[0];k.$$setUpdateOnEvents();c.on("blur",
311function(){k.$touched||(a.$$phase?b.$evalAsync(g):b.$apply(g))})}}}}}],Sb,wh=/(\s+|^)default(\s+|$)/;Lc.prototype={getOption:function(a){return this.$$options[a]},createChild:function(a){var b=!1;a=S({},a);r(a,function(d,c){"$inherit"===d?"*"===c?b=!0:(a[c]=this.$$options[c],"updateOn"===c&&(a.updateOnDefault=this.$$options.updateOnDefault)):"updateOn"===c&&(a.updateOnDefault=!1,a[c]=U(d.replace(wh,function(){a.updateOnDefault=!0;return" "})))},this);b&&(delete a["*"],ge(a,this.$$options));ge(a,Sb.$$options);
312return new Lc(a)}};Sb=new Lc({updateOn:"",updateOnDefault:!0,debounce:0,getterSetter:!1,allowInvalid:!1,timezone:null});var tf=function(){function a(a,d){this.$$attrs=a;this.$$scope=d}a.$inject=["$attrs","$scope"];a.prototype={$onInit:function(){var a=this.parentCtrl?this.parentCtrl.$options:Sb,d=this.$$scope.$eval(this.$$attrs.ngModelOptions);this.$options=a.createChild(d)}};return{restrict:"A",priority:10,require:{parentCtrl:"?^^ngModelOptions"},bindToController:!0,controller:a}},df=Ra({terminal:!0,
313priority:1E3}),xh=F("ngOptions"),yh=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([$\w][$\w]*)|(?:\(\s*([$\w][$\w]*)\s*,\s*([$\w][$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,nf=["$compile","$document","$parse",function(a,b,d){function c(a,b,c){function e(a,b,c,d,f){this.selectValue=a;this.viewValue=b;this.label=c;this.group=d;this.disabled=f}function f(a){var b;if(!r&&ya(a))b=a;else{b=[];for(var c in a)a.hasOwnProperty(c)&&
314"$"!==c.charAt(0)&&b.push(c)}return b}var p=a.match(yh);if(!p)throw xh("iexp",a,za(b));var n=p[5]||p[7],r=p[6];a=/ as /.test(p[0])&&p[1];var q=p[9];b=d(p[2]?p[1]:n);var t=a&&d(a)||b,w=q&&d(q),v=q?function(a,b){return w(c,b)}:function(a){return La(a)},x=function(a,b){return v(a,A(a,b))},z=d(p[2]||p[1]),y=d(p[3]||""),J=d(p[4]||""),I=d(p[8]),B={},A=r?function(a,b){B[r]=b;B[n]=a;return B}:function(a){B[n]=a;return B};return{trackBy:q,getTrackByValue:x,getWatchables:d(I,function(a){var b=[];a=a||[];for(var d=
315f(a),e=d.length,g=0;g<e;g++){var k=a===d?g:d[g],l=a[k],k=A(l,k),l=v(l,k);b.push(l);if(p[2]||p[1])l=z(c,k),b.push(l);p[4]&&(k=J(c,k),b.push(k))}return b}),getOptions:function(){for(var a=[],b={},d=I(c)||[],g=f(d),k=g.length,n=0;n<k;n++){var p=d===g?n:g[n],r=A(d[p],p),s=t(c,r),p=v(s,r),w=z(c,r),B=y(c,r),r=J(c,r),s=new e(p,s,w,B,r);a.push(s);b[p]=s}return{items:a,selectValueMap:b,getOptionFromViewValue:function(a){return b[x(a)]},getViewValueFromOption:function(a){return q?Ia(a.viewValue):a.viewValue}}}}}
316var e=C.document.createElement("option"),f=C.document.createElement("optgroup");return{restrict:"A",terminal:!0,require:["select","ngModel"],link:{pre:function(a,b,c,d){d[0].registerOption=E},post:function(d,k,h,l){function m(a){var b=(a=v.getOptionFromViewValue(a))&&a.element;b&&!b.selected&&(b.selected=!0);return a}function p(a,b){a.element=b;b.disabled=a.disabled;a.label!==b.label&&(b.label=a.label,b.textContent=a.label);b.value=a.selectValue}var n=l[0],q=l[1],z=h.multiple;l=0;for(var t=k.children(),
317B=t.length;l<B;l++)if(""===t[l].value){n.hasEmptyOption=!0;n.emptyOption=t.eq(l);break}k.empty();l=!!n.emptyOption;x(e.cloneNode(!1)).val("?");var v,A=c(h.ngOptions,k,d),C=b[0].createDocumentFragment();n.generateUnknownOptionValue=function(a){return"?"};z?(n.writeValue=function(a){if(v){var b=a&&a.map(m)||[];v.items.forEach(function(a){a.element.selected&&-1===Array.prototype.indexOf.call(b,a)&&(a.element.selected=!1)})}},n.readValue=function(){var a=k.val()||[],b=[];r(a,function(a){(a=v.selectValueMap[a])&&
318!a.disabled&&b.push(v.getViewValueFromOption(a))});return b},A.trackBy&&d.$watchCollection(function(){if(H(q.$viewValue))return q.$viewValue.map(function(a){return A.getTrackByValue(a)})},function(){q.$render()})):(n.writeValue=function(a){if(v){var b=k[0].options[k[0].selectedIndex],c=v.getOptionFromViewValue(a);b&&b.removeAttribute("selected");c?(k[0].value!==c.selectValue&&(n.removeUnknownOption(),k[0].value=c.selectValue,c.element.selected=!0),c.element.setAttribute("selected","selected")):n.selectUnknownOrEmptyOption(a)}},
319n.readValue=function(){var a=v.selectValueMap[k.val()];return a&&!a.disabled?(n.unselectEmptyOption(),n.removeUnknownOption(),v.getViewValueFromOption(a)):null},A.trackBy&&d.$watch(function(){return A.getTrackByValue(q.$viewValue)},function(){q.$render()}));l&&(a(n.emptyOption)(d),k.prepend(n.emptyOption),8===n.emptyOption[0].nodeType?(n.hasEmptyOption=!1,n.registerOption=function(a,b){""===b.val()&&(n.hasEmptyOption=!0,n.emptyOption=b,n.emptyOption.removeClass("ng-scope"),q.$render(),b.on("$destroy",
320function(){var a=n.$isEmptyOptionSelected();n.hasEmptyOption=!1;n.emptyOption=void 0;a&&q.$render()}))}):n.emptyOption.removeClass("ng-scope"));d.$watchCollection(A.getWatchables,function(){var a=v&&n.readValue();if(v)for(var b=v.items.length-1;0<=b;b--){var c=v.items[b];w(c.group)?Fb(c.element.parentNode):Fb(c.element)}v=A.getOptions();var d={};v.items.forEach(function(a){var b;if(w(a.group)){b=d[a.group];b||(b=f.cloneNode(!1),C.appendChild(b),b.label=null===a.group?"null":a.group,d[a.group]=b);
321var c=e.cloneNode(!1);b.appendChild(c);p(a,c)}else b=e.cloneNode(!1),C.appendChild(b),p(a,b)});k[0].appendChild(C);q.$render();q.$isEmpty(a)||(b=n.readValue(),(A.trackBy||z?va(a,b):a===b)||(q.$setViewValue(b),q.$render()))})}}}}],ef=["$locale","$interpolate","$log",function(a,b,d){var c=/{}/g,e=/^when(Minus)?(.+)$/;return{link:function(f,g,k){function h(a){g.text(a||"")}var l=k.count,m=k.$attr.when&&g.attr(k.$attr.when),p=k.offset||0,n=f.$eval(m)||{},q={},w=b.startSymbol(),t=b.endSymbol(),x=w+l+"-"+
322p+t,v=ca.noop,A;r(k,function(a,b){var c=e.exec(b);c&&(c=(c[1]?"-":"")+K(c[2]),n[c]=g.attr(k.$attr[b]))});r(n,function(a,d){q[d]=b(a.replace(c,x))});f.$watch(l,function(b){var c=parseFloat(b),e=X(c);e||c in n||(c=a.pluralCat(c-p));c===A||e&&X(A)||(v(),e=q[c],z(e)?(null!=b&&d.debug("ngPluralize: no rule defined for '"+c+"' in "+m),v=E,h()):v=f.$watch(e,h),A=c)})}}}],qe=F("ngRef"),ff=["$parse",function(a){return{priority:-1,restrict:"A",compile:function(b,d){var c=wa(ua(b)),e=a(d.ngRef),f=e.assign||
323function(){throw qe("nonassign",d.ngRef);};return function(a,b,h){var l;if(h.hasOwnProperty("ngRefRead"))if("$element"===h.ngRefRead)l=b;else{if(l=b.data("$"+h.ngRefRead+"Controller"),!l)throw qe("noctrl",h.ngRefRead,d.ngRef);}else l=b.data("$"+c+"Controller");l=l||b;f(a,l);b.on("$destroy",function(){e(a)===l&&f(a,null)})}}}}],gf=["$parse","$animate","$compile",function(a,b,d){var c=F("ngRepeat"),e=function(a,b,c,d,e,f,g){a[c]=d;e&&(a[e]=f);a.$index=b;a.$first=0===b;a.$last=b===g-1;a.$middle=!(a.$first||
324a.$last);a.$odd=!(a.$even=0===(b&1))},f=function(a,b,c){return La(c)},g=function(a,b){return b};return{restrict:"A",multiElement:!0,transclude:"element",priority:1E3,terminal:!0,$$tlb:!0,compile:function(k,h){var l=h.ngRepeat,m=d.$$createComment("end ngRepeat",l),p=l.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!p)throw c("iexp",l);var n=p[1],q=p[2],w=p[3],t=p[4],p=n.match(/^(?:(\s*[$\w]+)|\(\s*([$\w]+)\s*,\s*([$\w]+)\s*\))$/);if(!p)throw c("iidexp",
325n);var x=p[3]||p[1],v=p[2];if(w&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(w)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(w)))throw c("badident",w);var z;if(t){var A={$id:La},y=a(t);z=function(a,b,c,d){v&&(A[v]=b);A[x]=c;A.$index=d;return y(a,A)}}return function(a,d,h,k,n){var p=T();a.$watchCollection(q,function(h){var k,q,t=d[0],s,y=T(),B,C,E,D,H,F,K;w&&(a[w]=h);if(ya(h))H=h,q=z||f;else for(K in q=z||g,H=[],h)ta.call(h,K)&&"$"!==K.charAt(0)&&H.push(K);
326B=H.length;K=Array(B);for(k=0;k<B;k++)if(C=h===H?k:H[k],E=h[C],D=q(a,C,E,k),p[D])F=p[D],delete p[D],y[D]=F,K[k]=F;else{if(y[D])throw r(K,function(a){a&&a.scope&&(p[a.id]=a)}),c("dupes",l,D,E);K[k]={id:D,scope:void 0,clone:void 0};y[D]=!0}A&&(A[x]=void 0);for(s in p){F=p[s];D=tb(F.clone);b.leave(D);if(D[0].parentNode)for(k=0,q=D.length;k<q;k++)D[k].$$NG_REMOVED=!0;F.scope.$destroy()}for(k=0;k<B;k++)if(C=h===H?k:H[k],E=h[C],F=K[k],F.scope){s=t;do s=s.nextSibling;while(s&&s.$$NG_REMOVED);F.clone[0]!==
327s&&b.move(tb(F.clone),null,t);t=F.clone[F.clone.length-1];e(F.scope,k,x,E,v,C,B)}else n(function(a,c){F.scope=c;var d=m.cloneNode(!1);a[a.length++]=d;b.enter(a,null,t);t=d;F.clone=a;y[F.id]=F;e(F.scope,k,x,E,v,C,B)});p=y})}}}}],hf=["$animate",function(a){return{restrict:"A",multiElement:!0,link:function(b,d,c){b.$watch(c.ngShow,function(b){a[b?"removeClass":"addClass"](d,"ng-hide",{tempClasses:"ng-hide-animate"})})}}}],$e=["$animate",function(a){return{restrict:"A",multiElement:!0,link:function(b,
328d,c){b.$watch(c.ngHide,function(b){a[b?"addClass":"removeClass"](d,"ng-hide",{tempClasses:"ng-hide-animate"})})}}}],jf=Ra(function(a,b,d){a.$watchCollection(d.ngStyle,function(a,d){d&&a!==d&&r(d,function(a,c){b.css(c,"")});a&&b.css(a)})}),kf=["$animate","$compile",function(a,b){return{require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(d,c,e,f){var g=[],k=[],h=[],l=[],m=function(a,b){return function(c){!1!==c&&a.splice(b,1)}};d.$watch(e.ngSwitch||e.on,function(c){for(var d,
329e;h.length;)a.cancel(h.pop());d=0;for(e=l.length;d<e;++d){var q=tb(k[d].clone);l[d].$destroy();(h[d]=a.leave(q)).done(m(h,d))}k.length=0;l.length=0;(g=f.cases["!"+c]||f.cases["?"])&&r(g,function(c){c.transclude(function(d,e){l.push(e);var f=c.element;d[d.length++]=b.$$createComment("end ngSwitchWhen");k.push({clone:d});a.enter(d,f.parent(),f)})})})}}}],lf=Ra({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(a,b,d,c,e){a=d.ngSwitchWhen.split(d.ngSwitchWhenSeparator).sort().filter(function(a,
330b,c){return c[b-1]!==a});r(a,function(a){c.cases["!"+a]=c.cases["!"+a]||[];c.cases["!"+a].push({transclude:e,element:b})})}}),mf=Ra({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(a,b,d,c,e){c.cases["?"]=c.cases["?"]||[];c.cases["?"].push({transclude:e,element:b})}}),zh=F("ngTransclude"),of=["$compile",function(a){return{restrict:"EAC",compile:function(b){var d=a(b.contents());b.empty();return function(a,b,f,g,k){function h(){d(a,function(a){b.append(a)})}if(!k)throw zh("orphan",
331za(b));f.ngTransclude===f.$attr.ngTransclude&&(f.ngTransclude="");
331f=f.ngTransclude||f.ngTranscludeSlot;k(function(a,c){var d;if(d=a.length)a:{d=0;for(var f=a.length;d<f;d++){var g=a[d];if(g.nodeType!==Pa||g.nodeValue.trim()){d=!0;break a}}d=void 0}d?b.append(a):(h(),c.$destroy())},null,f);f&&!k.isSlotFilled(f)&&h()}}}}],Oe=["$templateCache",function(a){return{restrict:"E",terminal:!0,compile:function(b,d){"text/ng-template"===d.type&&a.put(d.id,b[0].text)}}}],Ah={$setViewValue:E,$render:E},Bh=["$element",
332"$scope",function(a,b){function d(){g||(g=!0,b.$$postDigest(function(){g=!1;e.ngModelCtrl.$render()}))}function c(a){k||(k=!0,b.$$postDigest(function(){b.$$destroyed||(k=!1,e.ngModelCtrl.$setViewValue(e.readValue()),a&&e.ngModelCtrl.$render())}))}var e=this,f=new Hb;e.selectValueMap={};e.ngModelCtrl=Ah;e.multiple=!1;e.unknownOption=x(C.document.createElement("option"));e.hasEmptyOption=!1;e.emptyOption=void 0;e.renderUnknownOption=function(b){b=e.generateUnknownOptionValue(b);e.unknownOption.val(b);
333a.prepend(e.unknownOption);Oa(e.unknownOption,!0);a.val(b)};e.updateUnknownOption=function(b){b=e.generateUnknownOptionValue(b);e.unknownOption.val(b);Oa(e.unknownOption,!0);a.val(b)};e.generateUnknownOptionValue=function(a){return"? "+La(a)+" ?"};e.removeUnknownOption=function(){e.unknownOption.parent()&&e.unknownOption.remove()};e.selectEmptyOption=function(){e.emptyOption&&(a.val(""),Oa(e.emptyOption,!0))};e.unselectEmptyOption=function(){e.hasEmptyOption&&Oa(e.emptyOption,!1)};b.$on("$destroy",
334function(){e.renderUnknownOption=E});e.readValue=function(){var b=a.val(),b=b in e.selectValueMap?e.selectValueMap[b]:b;return e.hasOption(b)?b:null};e.writeValue=function(b){var c=a[0].options[a[0].selectedIndex];c&&Oa(x(c),!1);e.hasOption(b)?(e.removeUnknownOption(),c=La(b),a.val(c in e.selectValueMap?c:b),Oa(x(a[0].options[a[0].selectedIndex]),!0)):e.selectUnknownOrEmptyOption(b)};e.addOption=function(a,b){if(8!==b[0].nodeType){Ja(a,'"option value"');""===a&&(e.hasEmptyOption=!0,e.emptyOption=
335b);var c=f.get(a)||0;f.set(a,c+1);d()}};e.removeOption=function(a){var b=f.get(a);b&&(1===b?(f.delete(a),""===a&&(e.hasEmptyOption=!1,e.emptyOption=void 0)):f.set(a,b-1))};e.hasOption=function(a){return!!f.get(a)};e.$hasEmptyOption=function(){return e.hasEmptyOption};e.$isUnknownOptionSelected=function(){return a[0].options[0]===e.unknownOption[0]};e.$isEmptyOptionSelected=function(){return e.hasEmptyOption&&a[0].options[a[0].selectedIndex]===e.emptyOption[0]};e.selectUnknownOrEmptyOption=function(a){null==
336a&&e.emptyOption?(e.removeUnknownOption(),e.selectEmptyOption()):e.unknownOption.parent().length?e.updateUnknownOption(a):e.renderUnknownOption(a)};var g=!1,k=!1;e.registerOption=function(a,b,f,g,k){if(f.$attr.ngValue){var q,r;f.$observe("value",function(a){var d,f=b.prop("selected");w(r)&&(e.removeOption(q),delete e.selectValueMap[r],d=!0);r=La(a);q=a;e.selectValueMap[r]=a;e.addOption(a,b);b.attr("value",r);d&&f&&c()})}else g?f.$observe("value",function(a){e.readValue();var d,f=b.prop("selected");
337w(q)&&(e.removeOption(q),d=!0);q=a;e.addOption(a,b);d&&f&&c()}):k?a.$watch(k,function(a,d){f.$set("value",a);var g=b.prop("selected");d!==a&&e.removeOption(d);e.addOption(a,b);d&&g&&c()}):e.addOption(f.value,b);f.$observe("disabled",function(a){if("true"===a||a&&b.prop("selected"))e.multiple?c(!0):(e.ngModelCtrl.$setViewValue(null),e.ngModelCtrl.$render())});b.on("$destroy",function(){var a=e.readValue(),b=f.value;e.removeOption(b);d();(e.multiple&&a&&-1!==a.indexOf(b)||a===b)&&c(!0)})}}],Pe=function(){return{restrict:"E",
338require:["select","?ngModel"],controller:Bh,priority:1,link:{pre:function(a,b,d,c){var e=c[0],f=c[1];if(f){if(e.ngModelCtrl=f,b.on("change",function(){e.removeUnknownOption();a.$apply(function(){f.$setViewValue(e.readValue())})}),d.multiple){e.multiple=!0;e.readValue=function(){var a=[];r(b.find("option"),function(b){b.selected&&!b.disabled&&(b=b.value,a.push(b in e.selectValueMap?e.selectValueMap[b]:b))});return a};e.writeValue=function(a){r(b.find("option"),function(b){var c=!!a&&(-1!==Array.prototype.indexOf.call(a,
339b.value)||-1!==Array.prototype.indexOf.call(a,e.selectValueMap[b.value]));c!==b.selected&&Oa(x(b),c)})};var g,k=NaN;a.$watch(function(){k!==f.$viewValue||va(g,f.$viewValue)||(g=ja(f.$viewValue),f.$render());k=f.$viewValue});f.$isEmpty=function(a){return!a||0===a.length}}}else e.registerOption=E},post:function(a,b,d,c){var e=c[1];if(e){var f=c[0];e.$render=function(){f.writeValue(e.$viewValue)}}}}}},Qe=["$interpolate",function(a){return{restrict:"E",priority:100,compile:function(b,d){var c,e;w(d.ngValue)||
340(w(d.value)?c=a(d.value,!0):(e=a(b.text(),!0))||d.$set("value",b.text()));return function(a,b,d){var h=b.parent();(h=h.data("$selectController")||h.parent().data("$selectController"))&&h.registerOption(a,b,d,c,e)}}}}],$c=["$parse",function(a){return{restrict:"A",require:"?ngModel",link:function(b,d,c,e){if(e){var f=c.hasOwnProperty("required")||a(c.ngRequired)(b);c.ngRequired||(c.required=!0);e.$validators.required=function(a,b){return!f||!e.$isEmpty(b)};c.$observe("required",function(a){f!==a&&(f=
341a,e.$validate())})}}}}],Zc=["$parse",function(a){return{restrict:"A",require:"?ngModel",compile:function(b,d){var c,e;d.ngPattern&&(c=d.ngPattern,e="/"===d.ngPattern.charAt(0)&&ie.test(d.ngPattern)?function(){return d.ngPattern}:a(d.ngPattern));return function(a,b,d,h){if(h){var l=d.pattern;d.ngPattern?l=e(a):c=d.pattern;var m=he(l,c,b);d.$observe("pattern",function(a){var d=m;m=he(a,c,b);(d&&d.toString())!==(m&&m.toString())&&h.$validate()});h.$validators.pattern=function(a,b){return h.$isEmpty(b)||
342z(m)||m.test(b)}}}}}}],bd=["$parse",function(a){return{restrict:"A",require:"?ngModel",link:function(b,d,c,e){if(e){var f=c.maxlength||a(c.ngMaxlength)(b),g=Tb(f);c.$observe("maxlength",function(a){f!==a&&(g=Tb(a),f=a,e.$validate())});e.$validators.maxlength=function(a,b){return 0>g||e.$isEmpty(b)||b.length<=g}}}}}],ad=["$parse",function(a){return{restrict:"A",require:"?ngModel",link:function(b,d,c,e){if(e){var f=c.minlength||a(c.ngMinlength)(b),g=Tb(f)||-1;c.$observe("minlength",function(a){f!==
343a&&(g=Tb(a)||-1,f=a,e.$validate())});e.$validators.minlength=function(a,b){return e.$isEmpty(b)||b.length>=g}}}}}];C.angular.bootstrap?C.console&&console.log("WARNING: Tried to load AngularJS more than once."):(Fe(),Je(ca),ca.module("ngLocale",[],["$provide",function(a){function b(a){a+="";var b=a.indexOf(".");return-1==b?0:a.length-b-1}a.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),ERANAMES:["Before Christ","Anno Domini"],
344ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:"January February March April May June July August September October November December".split(" "),SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),STANDALONEMONTH:"January February March April May June July August September October November December".split(" "),WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a",
345"short":"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-\u00a4",negSuf:"",posPre:"\u00a4",posSuf:""}]},id:"en-us",localeID:"en_US",pluralCat:function(a,c){var e=a|0,f=c;void 0===f&&(f=Math.min(b(a),3));Math.pow(10,f);return 1==e&&0==f?"one":"other"}})}]),x(function(){Ae(C.document,
346Uc)}))})(window);!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>');
347
348
349(function(z,l){'use strict';function q(n){return["$animate",function(u){return{restrict:"AE",transclude:"element",priority:1,terminal:!0,require:"^^ngMessages",link:function(m,f,a,e,r){var b,h,s;if(!n){b=f[0];s=a.ngMessage||a.when;a=a.ngMessageExp||a.whenExp;var k=function(c){h=c?v(c)?c:c.split(/[\s,]+/):null;e.reRender()};a?(k(m.$eval(a)),m.$watchCollection(a,k)):k(s)}var g,t;e.register(b,t={test:function(c){var b=h;c=b?v(b)?0<=b.indexOf(c):b.hasOwnProperty(c):void 0;return c},attach:function(){g||
350r(function(c,a){u.enter(c,null,f);g=c;var d=g.$$attachId=e.getAttachId();g.on("$destroy",function(){g&&g.$$attachId===d&&(e.deregister(b,n),t.detach());a.$destroy()})})},detach:function(){if(g){var c=g;g=null;u.leave(c)}}},n);m.$on("$destroy",function(){e.deregister(b,n)})}}}]}var x,v,p,y;l.module("ngMessages",[],function(){x=l.forEach;v=l.isArray;p=l.isString;y=l.element}).info({angularVersion:"1.7.9"}).directive("ngMessages",["$animate",function(n){function u(f,a){return p(a)&&0===a.length||m(f.$eval(a))}
351function m(f){return p(f)?f.length:!!f}return{require:"ngMessages",restrict:"AE",controller:["$element","$scope","$attrs",function(f,a,e){function r(c,b){for(var d=b,a=[];d&&d!==c;){var e=d.$$ngMessageNode;if(e&&e.length)return k[e];d.childNodes.length&&-1===a.indexOf(d)?(a.push(d),d=d.childNodes[d.childNodes.length-1]):d.previousSibling?d=d.previousSibling:(d=d.parentNode,a.push(d))}}var b=this,h=0,s=0;this.getAttachId=function(){return s++};var k=this.messages={},g,t;this.render=function(c){c=c||
352{};g=!1;t=c;for(var w=u(a,e.ngMessagesMultiple)||u(a,e.multiple),d=[],r={},h=0,k=b.head,s=!1,l=0;null!=k;){l++;var p=k.message,q=!1;s||x(c,function(b,c){m(b)&&!q&&(h++,p.test(c)&&!r[c]&&(q=r[c]=!0,p.attach()))});q?s=!w:d.push(p);k=k.next}x(d,function(c){c.detach()});c=d.length!==l;(w=b.default&&!c&&0<h)?b.default.attach():b.default&&b.default.detach();c||w?n.setClass(f,"ng-active","ng-inactive"):n.setClass(f,"ng-inactive","ng-active")};a.$watchCollection(e.ngMessages||e["for"],b.render);this.reRender=
353function(){g||(g=!0,a.$evalAsync(function(){g&&t&&b.render(t)}))};this.register=function(c,a,d){if(d)b.default=a;else{d=h.toString();k[d]={message:a};var e=f[0];a=k[d];b.head?(e=r(e,c))?(a.next=e.next,e.next=a):(a.next=b.head,b.head=a):b.head=a;c.$$ngMessageNode=d;h++}b.reRender()};this.deregister=function(a,e){if(e)delete b.default;else{var d=a.$$ngMessageNode;
353delete a.$$ngMessageNode;var g=k[d];if(g){var h=r(f[0],a);h?h.next=g.next:b.head=g.next}delete k[d]}b.reRender()}}]}}]).directive("ngMessagesInclude",
354["$templateRequest","$document","$compile",function(n,l,m){function f(a,e){var f=m.$$createComment?m.$$createComment("ngMessagesInclude",e):l[0].createComment(" ngMessagesInclude: "+e+" "),f=y(f);a.after(f);a.remove()}return{restrict:"AE",require:"^^ngMessages",link:function(a,e,l){var b=l.ngMessagesInclude||l.src;n(b).then(function(h){a.$$destroyed||(p(h)&&!h.trim()?f(e,b):m(h)(a,function(a){e.after(a);f(e,b)}))})}}}]).directive("ngMessage",q()).directive("ngMessageExp",q()).directive("ngMessageDefault",
355q(!0))})(window,window.angular);
356
357
358'use strict';
359angular.module("ngLocale", [], ["$provide", function($provide) {
360var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
361function getDecimals(n) {
362  n = n + '';
363  var i = n.indexOf('.');
364  return (i == -1) ? 0 : n.length - i - 1;
365}
366
367function getVF(n, opt_precision) {
368  var v = opt_precision;
369
370  if (undefined === v) {
371    v = Math.min(getDecimals(n), 3);
372  }
373
374  var base = Math.pow(10, v);
375  var f = ((n * base) | 0) % base;
376  return {v: v, f: f};
377}
378
379$provide.value("$locale", {
380  "DATETIME_FORMATS": {
381    "AMPMS": [
382      "vorm.",
383      "nachm."
384    ],
385    "DAY": [
386      "Sonntag",
387      "Montag",
388      "Dienstag",
389      "Mittwoch",
390      "Donnerstag",
391      "Freitag",
392      "Samstag"
393    ],
394    "ERANAMES": [
395      "v. Chr.",
396      "n. Chr."
397    ],
398    "ERAS": [
399      "v. Chr.",
400      "n. Chr."
401    ],
402    "FIRSTDAYOFWEEK": 0,
403    "MONTH": [
404      "Januar",
405      "Februar",
406      "M\u00e4rz",
407      "April",
408      "Mai",
409      "Juni",
410      "Juli",
411      "August",
412      "September",
413      "Oktober",
414      "November",
415      "Dezember"
416    ],
417    "SHORTDAY": [
418      "So.",
419      "Mo.",
420      "Di.",
421      "Mi.",
422      "Do.",
423      "Fr.",
424      "Sa."
425    ],
426    "SHORTMONTH": [
427      "Jan.",
428      "Feb.",
429      "M\u00e4rz",
430      "Apr.",
431      "Mai",
432      "Juni",
433      "Juli",
434      "Aug.",
435      "Sep.",
436      "Okt.",
437      "Nov.",
438      "Dez."
439    ],
440    "STANDALONEMONTH": [
441      "Januar",
442      "Februar",
443      "M\u00e4rz",
444      "April",
445      "Mai",
446      "Juni",
447      "Juli",
448      "August",
449      "September",
450      "Oktober",
451      "November",
452      "Dezember"
453    ],
454    "WEEKENDRANGE": [
455      5,
456      6
457    ],
458    "fullDate": "EEEE, d. MMMM y",
459    "longDate": "d. MMMM y",
460    "medium": "dd.MM.y HH:mm:ss",
461    "mediumDate": "dd.MM.y",
462    "mediumTime": "HH:mm:ss",
463    "short": "dd.MM.yy HH:mm",
464    "shortDate": "dd.MM.yy",
465    "shortTime": "HH:mm"
466  },
467  "NUMBER_FORMATS": {
468    "CURRENCY_SYM": "\u20ac",
469    "DECIMAL_SEP": ",",
470    "GROUP_SEP": ".",
471    "PATTERNS": [
472      {
473        "gSize": 3,
474        "lgSize": 3,
475        "maxFrac": 3,
476        "minFrac": 0,
477        "minInt": 1,
478        "negPre": "-",
479        "negSuf": "",
480        "posPre": "",
481        "posSuf": ""
482      },
483      {
484        "gSize": 3,
485        "lgSize": 3,
486        "maxFrac": 2,
487        "minFrac": 2,
488        "minInt": 1,
489        "negPre": "-",
490        "negSuf": "\u00a0\u00a4",
491        "posPre": "",
492        "posSuf": "\u00a0\u00a4"
493      }
494    ]
495  },
496  "id": "de-de",
497  "localeID": "de_DE",
498  "pluralCat": function(n, opt_precision) {  var i = n | 0;  var vf = getVF(n, opt_precision);  if (i == 1 && vf.v == 0) {    return PLURAL_CATEGORY.ONE;  }  return PLURAL_CATEGORY.OTHER;}
499});
500}]);
501
502
503/*******************************************************************************
504 *                                                                              *
505 * Author    :  Angus Johnson                                                   *
506 * Version   :  6.4.2                                                           *
507 * Date      :  27 February 2017                                                *
508 * Website   :  http://www.angusj.com                                           *
509 * Copyright :  Angus Johnson 2010-2017                                         *
510 *                                                                              *
511 * License:                                                                     *
512 * Use, modification & distribution is subject to Boost Software License Ver 1. *
513 * http://www.boost.org/LICENSE_1_0.txt                                         *
514 *                                                                              *
515 * Attributions:                                                                *
516 * The code in this library is an extension of Bala Vatti's clipping algorithm: *
517 * "A generic solution to polygon clipping"                                     *
518 * Communications of the ACM, Vol 35, Issue 7 (July 1992) pp 56-63.             *
519 * http://portal.acm.org/citation.cfm?id=129906                                 *
520 *                                                                              *
521 * Computer graphics and geometric modeling: implementation and algorithms      *
522 * By Max K. Agoston                                                            *
523 * Springer; 1 edition (January 4, 2005)                                        *
524 * http://books.google.com/books?q=vatti+clipping+agoston                       *
525 *                                                                              *
526 * See also:                                                                    *
527 * "Polygon Offsetting by Computing Winding Numbers"                            *
528 * Paper no. DETC2005-85513 pp. 565-575                                         *
529 * ASME 2005 International Design Engineering Technical Conferences             *
530 * and Computers and Information in Engineering Conference (IDETC/CIE2005)      *
531 * September 24-28, 2005 , Long Beach, California, USA                          *
532 * http://www.me.berkeley.edu/~mcmains/pubs/DAC05OffsetPolygon.pdf              *
533 *                                                                              *
534 *******************************************************************************/
535/*******************************************************************************
536 *                                                                              *
537 * Author    :  Timo                                                            *
538 * Version   :  6.4.2.2                                                         *
539 * Date      :  8 September 2017                                                 *
540 *                                                                              *
541 * This is a translation of the C# Clipper library to Javascript.               *
542 * Int128 struct of C# is implemented using JSBN of Tom Wu.                     *
543 * Because Javascript lacks support for 64-bit integers, the space              *
544 * is a little more restricted than in C# version.                              *
545 *                                                                              *
546 * C# version has support for coordinate space:                                 *
547 * +-4611686018427387903 ( sqrt(2^127 -1)/2 )                                   *
548 * while Javascript version has support for space:                              *
549 * +-4503599627370495 ( sqrt(2^106 -1)/2 )                                      *
550 *                                                                              *
551 * Tom Wu's JSBN proved to be the fastest big integer library:                  *
552 * http://jsperf.com/big-integer-library-test                                   *
553 *                                                                              *
554 * This class can be made simpler when (if ever) 64-bit integer support comes   *
555 * or floating point Clipper is released.                                       *
556 *                                                                              *
557 *******************************************************************************/
558/*******************************************************************************
559 *                                                                              *
560 * Basic JavaScript BN library - subset useful for RSA encryption.              *
561 * http://www-cs-students.stanford.edu/~tjw/jsbn/                               *
562 * Copyright (c) 2005  Tom Wu                                                   *
563 * All Rights Reserved.                                                         *
564 * See "LICENSE" for details:                                                   *
565 * http://www-cs-students.stanford.edu/~tjw/jsbn/LICENSE                        *
566 *                                                                              *
567 *******************************************************************************/
568(function(){function k(a,b,c){d.biginteger_used=1;null!=a&&("number"==typeof a&&"undefined"==typeof b?this.fromInt(a):"number"==typeof a?this.fromNumber(a,b,c):null==b&&"string"!=typeof a?this.fromString(a,256):this.fromString(a,b))}function q(){return new k(null,void 0,void 0)}function R(a,b,c,e,d,g){for(;0<=--g;){var f=b*this[a++]+c[e]+d;d=Math.floor(f/67108864);c[e++]=f&67108863}return d}function S(a,b,c,e,d,g){var f=b&32767;for(b>>=15;0<=--g;){var m=this[a]&32767,k=this[a++]>>15,n=b*m+k*f;m=f*
569m+((n&32767)<<15)+c[e]+(d&1073741823);d=(m>>>30)+(n>>>15)+b*k+(d>>>30);c[e++]=m&1073741823}return d}function T(a,b,c,e,d,g){var f=b&16383;for(b>>=14;0<=--g;){var m=this[a]&16383,k=this[a++]>>14,n=b*m+k*f;m=f*m+((n&16383)<<14)+c[e]+d;d=(m>>28)+(n>>14)+b*k;c[e++]=m&268435455}return d}function M(a,b){var c=E[a.charCodeAt(b)];return null==c?-1:c}function y(a){var b=q();b.fromInt(a);return b}function F(a){var b=1,c;0!=(c=a>>>16)&&(a=c,b+=16);0!=(c=a>>8)&&(a=c,b+=8);0!=(c=a>>4)&&(a=c,b+=4);0!=(c=a>>2)&&
570(a=c,b+=2);0!=a>>1&&(b+=1);return b}function z(a){this.m=a}function B(a){this.m=a;this.mp=a.invDigit();this.mpl=this.mp&32767;this.mph=this.mp>
570>15;this.um=(1<<a.DB-15)-1;this.mt2=2*a.t}function U(a,b){return a&b}function H(a,b){return a|b}function N(a,b){return a^b}function O(a,b){return a&~b}function D(){}function P(a){return a}function C(a){this.r2=q();this.q3=q();k.ONE.dlShiftTo(2*a.t,this.r2);this.mu=this.r2.divide(a);this.m=a}var d={version:"6.4.2.2",use_lines:!0,use_xyz:!1},G=!1;"undefined"!==
571typeof module&&module.exports?(module.exports=d,G=!0):"undefined"!==typeof document?window.ClipperLib=d:self.ClipperLib=d;if(G){var u="chrome";var v="Netscape"}else u=navigator.userAgent.toString().toLowerCase(),v=navigator.appName;var I=-1!=u.indexOf("chrome")&&-1==u.indexOf("chromium")?1:0;G=-1!=u.indexOf("chromium")?1:0;var Q=-1!=u.indexOf("safari")&&-1==u.indexOf("chrome")&&-1==u.indexOf("chromium")?1:0;var J=-1!=u.indexOf("firefox")?1:0;u.indexOf("firefox/17");u.indexOf("firefox/15");u.indexOf("firefox/3");
572var K=-1!=u.indexOf("opera")?1:0;u.indexOf("msie 10");u.indexOf("msie 9");var L=-1!=u.indexOf("msie 8")?1:0;var V=-1!=u.indexOf("msie 7")?1:0;u=-1!=u.indexOf("msie ")?1:0;d.biginteger_used=null;"Microsoft Internet Explorer"==v?(k.prototype.am=S,v=30):"Netscape"!=v?(k.prototype.am=R,v=26):(k.prototype.am=T,v=28);k.prototype.DB=v;k.prototype.DM=(1<<v)-1;k.prototype.DV=1<<v;k.prototype.FV=Math.pow(2,52);k.prototype.F1=52-v;k.prototype.F2=2*v-52;var E=[],x;v=48;for(x=0;9>=x;++x)E[v++]=x;v=97;for(x=10;36>
573x;++x)E[v++]=x;v=65;for(x=10;36>x;++x)E[v++]=x;z.prototype.convert=function(a){return 0>a.s||0<=a.compareTo(this.m)?a.mod(this.m):a};z.prototype.revert=function(a){return a};z.prototype.reduce=function(a){a.divRemTo(this.m,null,a)};z.prototype.mulTo=function(a,b,c){a.multiplyTo(b,c);this.reduce(c)};z.prototype.sqrTo=function(a,b){a.squareTo(b);this.reduce(b)};B.prototype.convert=function(a){var b=q();a.abs().dlShiftTo(this.m.t,b);b.divRemTo(this.m,null,b);0>a.s&&0<b.compareTo(k.ZERO)&&this.m.subTo(b,
574b);return b};B.prototype.revert=function(a){var b=q();a.copyTo(b);this.reduce(b);return b};B.prototype.reduce=function(a){for(;a.t<=this.mt2;)a[a.t++]=0;for(var b=0;b<this.m.t;++b){var c=a[b]&32767,e=c*this.mpl+((c*this.mph+(a[b]>>15)*this.mpl&this.um)<<15)&a.DM;c=b+this.m.t;for(a[c]+=this.m.am(0,e,a,b,0,this.m.t);a[c]>=a.DV;)a[c]-=a.DV,a[++c]++}a.clamp();a.drShiftTo(this.m.t,a);0<=a.compareTo(this.m)&&a.subTo(this.m,a)};B.prototype.mulTo=function(a,b,c){a.multiplyTo(b,c);this.reduce(c)};B.prototype.sqrTo=
575function(a,b){a.squareTo(b);this.reduce(b)};k.prototype.copyTo=function(a){for(var b=this.t-1;0<=b;--b)a[b]=this[b];a.t=this.t;a.s=this.s};k.prototype.fromInt=function(a){this.t=1;this.s=0>a?-1:0;0<a?this[0]=a:-1>a?this[0]=a+this.DV:this.t=0};k.prototype.fromString=function(a,b){if(16==b)var c=4;else if(8==b)c=3;else if(256==b)c=8;else if(2==b)c=1;else if(32==b)c=5;else if(4==b)c=2;else{this.fromRadix(a,b);return}this.s=this.t=0;for(var e=a.length,d=!1,g=0;0<=--e;){var h=8==c?a[e]&255:M(a,e);0>h?
576"-"==a.charAt(e)&&(d=!0):(d=!1,0==g?this[this.t++]=h:g+c>this.DB?(this[this.t-1]|=(h&(1<<this.DB-g)-1)<<g,this[this.t++]=h>>this.DB-g):this[this.t-1]|=h<<g,g+=c,g>=this.DB&&(g-=this.DB))}8==c&&0!=(a[0]&128)&&(this.s=-1,0<g&&(this[this.t-1]|=(1<<this.DB-g)-1<<g));this.clamp();d&&k.ZERO.subTo(this,this)};k.prototype.clamp=function(){for(var a=this.s&this.DM;0<this.t&&this[this.t-1]==a;)--this.t};k.prototype.dlShiftTo=function(a,b){var c;for(c=this.t-1;0<=c;--c)b[c+a]=this[c];for(c=a-1;0<=c;--c)b[c]=
5770;b.t=this.t+a;b.s=this.s};k.prototype.drShiftTo=function(a,b){for(var c=a;c<this.t;++c)b[c-a]=this[c];b.t=Math.max(this.t-a,0);b.s=this.s};k.prototype.lShiftTo=function(a,b){var c=a%this.DB,e=this.DB-c,d=(1<<e)-1,g=Math.floor(a/this.DB),h=this.s<<c&this.DM,m;for(m=this.t-1;0<=m;--m)b[m+g+1]=this[m]>>e|h,h=(this[m]&d)<<c;for(m=g-1;0<=m;--m)b[m]=0;b[g]=h;b.t=this.t+g+1;b.s=this.s;b.clamp()};k.prototype.rShiftTo=function(a,b){b.s=this.s;var c=Math.floor(a/this.DB);if(c>=this.t)b.t=0;else{var e=a%this.DB,
578d=this.DB-e,g=(1<<e)-1;b[0]=this[c]>>e;for(var h=c+1;h<this.t;++h)b[h-c-1]|=(this[h]&g)<<d,b[h-c]=this[h]>>e;0<e&&(b[this.t-c-1]|=(this.s&g)<<d);b.t=this.t-c;b.clamp()}};k.prototype.subTo=function(a,b){for(var c=0,e=0,d=Math.min(a.t,this.t);c<d;)e+=this[c]-a[c],b[c++]=e&this.DM,e>>=this.DB;if(a.t<this.t){for(e-=a.s;c<this.t;)e+=this[c],b[c++]=e&this.DM,e>>=this.DB;e+=this.s}else{for(e+=this.s;c<a.t;)e-=a[c],b[c++]=e&this.DM,e>>=this.DB;e-=a.s}b.s=0>e?-1:0;-1>e?b[c++]=this.DV+e:0<e&&(b[c++]=e);b.t=
579c;b.clamp()};k.prototype.multiplyTo=function(a,b){var c=this.abs(),e=a.abs(),d=c.t;for(b.t=d+e.t;0<=--d;)b[d]=0;for(d=0;d<e.t;++d)b[d+c.t]=c.am(0,e[d],b,d,0,c.t);b.s=0;b.clamp();this.s!=a.s&&k.ZERO.subTo(b,b)};k.prototype.squareTo=function(a){for(var b=this.abs(),c=a.t=2*b.t;0<=--c;)a[c]=0;for(c=0;c<b.t-1;++c){var e=b.am(c,b[c],a,2*c,0,1);(a[c+b.t]+=b.am(c+1,2*b[c],a,2*c+1,e,b.t-c-1))>=b.DV&&(a[c+b.t]-=b.DV,a[c+b.t+1]=1)}0<a.t&&(a[a.t-1]+=b.am(c,b[c],a,2*c,0,1));a.s=0;a.clamp()};k.prototype.divRemTo=
580function(a,b,c){var e=a.abs();if(!(0>=e.t)){var d=this.abs();if(d.t<e.t)null!=b&&b.fromInt(0),null!=c&&this.copyTo(c);else{null==c&&(c=q());var g=q(),h=this.s;a=a.s;var m=this.DB-F(e[e.t-1]);0<m?(e.lShiftTo(m,g),d.lShiftTo(m,c)):(e.copyTo(g),d.copyTo(c));e=g.t;d=g[e-1];if(0!=d){var l=d*(1<<this.F1)+(1<e?g[e-2]>>this.F2:0),n=this.FV/l;l=(1<<this.F1)/l;var r=1<<this.F2,p=c.t,t=p-e,u=null==b?q():b;g.dlShiftTo(t,u);0<=c.compareTo(u)&&(c[c.t++]=1,c.subTo(u,c));k.ONE.dlShiftTo(e,u);for(u.subTo(g,g);g.t<
581e;)g[g.t++]=0;for(;0<=--t;){var v=c[--p]==d?this.DM:Math.floor(c[p]*n+(c[p-1]+r)*l);if((c[p]+=g.am(0,v,c,t,0,e))<v)for(g.dlShiftTo(t,u),c.subTo(u,c);c[p]<--v;)c.subTo(u,c)}null!=b&&(c.drShiftTo(e,b),h!=a&&k.ZERO.subTo(b,b));c.t=e;c.clamp();0<m&&c.rShiftTo(m,c);0>h&&k.ZERO.subTo(c,c)}}}};k.prototype.invDigit=function(){if(1>this.t)return 0;var a=this[0];if(0==(a&1))return 0;var b=a&3;b=b*(2-(a&15)*b)&15;b=b*(2-(a&255)*b)&255;
581b=b*(2-((a&65535)*b&65535))&65535;b=b*(2-a*b%this.DV)%this.DV;return 0<b?
582this.DV-b:-b};k.prototype.isEven=function(){return 0==(0<this.t?this[0]&1:this.s)};k.prototype.exp=function(a,b){if(4294967295<a||1>a)return k.ONE;var c=q(),e=q(),d=b.convert(this),g=F(a)-1;for(d.copyTo(c);0<=--g;)if(b.sqrTo(c,e),0<(a&1<<g))b.mulTo(e,d,c);else{var h=c;c=e;e=h}return b.revert(c)};k.prototype.toString=function(a){if(0>this.s)return"-"+this.negate().toString(a);if(16==a)a=4;else if(8==a)a=3;else if(2==a)a=1;else if(32==a)a=5;else if(4==a)a=2;else return this.toRadix(a);var b=(1<<a)-
5831,c,e=!1,d="",g=this.t,h=this.DB-g*this.DB%a;if(0<g--)for(h<this.DB&&0<(c=this[g]>>h)&&(e=!0,d="0123456789abcdefghijklmnopqrstuvwxyz".charAt(c));0<=g;)h<a?(c=(this[g]&(1<<h)-1)<<a-h,c|=this[--g]>>(h+=this.DB-a)):(c=this[g]>>(h-=a)&b,0>=h&&(h+=this.DB,--g)),0<c&&(e=!0),e&&(d+="0123456789abcdefghijklmnopqrstuvwxyz".charAt(c));return e?d:"0"};k.prototype.negate=function(){var a=q();k.ZERO.subTo(this,a);return a};k.prototype.abs=function(){return 0>this.s?this.negate():this};k.prototype.compareTo=function(a){var b=
584this.s-a.s;if(0!=b)return b;var c=this.t;b=c-a.t;if(0!=b)return 0>this.s?-b:b;for(;0<=--c;)if(0!=(b=this[c]-a[c]))return b;return 0};k.prototype.bitLength=function(){return 0>=this.t?0:this.DB*(this.t-1)+F(this[this.t-1]^this.s&this.DM)};k.prototype.mod=function(a){var b=q();this.abs().divRemTo(a,null,b);0>this.s&&0<b.compareTo(k.ZERO)&&a.subTo(b,b);return b};k.prototype.modPowInt=function(a,b){var c=256>a||b.isEven()?new z(b):new B(b);return this.exp(a,c)};k.ZERO=y(0);k.ONE=y(1);D.prototype.convert=
585P;D.prototype.revert=P;D.prototype.mulTo=function(a,b,c){a.multiplyTo(b,c)};D.prototype.sqrTo=function(a,b){a.squareTo(b)};C.prototype.convert=function(a){if(0>a.s||a.t>2*this.m.t)return a.mod(this.m);if(0>a.compareTo(this.m))return a;var b=q();a.copyTo(b);this.reduce(b);return b};C.prototype.revert=function(a){return a};C.prototype.reduce=function(a){a.drShiftTo(this.m.t-1,this.r2);a.t>this.m.t+1&&(a.t=this.m.t+1,a.clamp());this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3);for(this.m.multiplyLowerTo(this.q3,
586this.m.t+1,this.r2);0>a.compareTo(this.r2);)a.dAddOffset(1,this.m.t+1);for(a.subTo(this.r2,a);0<=a.compareTo(this.m);)a.subTo(this.m,a)};C.prototype.mulTo=function(a,b,c){a.multiplyTo(b,c);this.reduce(c)};C.prototype.sqrTo=function(a,b){a.squareTo(b);this.reduce(b)};var w=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,
587313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],W=67108864/w[w.length-1];k.prototype.chunkSize=function(a){return Math.floor(Math.LN2*
588this.DB/Math.log(a))};k.prototype.toRadix=function(a){null==a&&(a=10);if(0==this.signum()||2>a||36<a)return"0";var b=this.chunkSize(a);b=Math.pow(a,b);var c=y(b),e=q(),d=q(),g="";for(this.divRemTo(c,e,d);0<e.signum();)g=(b+d.intValue()).toString(a).substr(1)+g,e.divRemTo(c,e,d);return d.intValue().toString(a)+g};k.prototype.fromRadix=function(a,b){this.fromInt(0);null==b&&(b=10);for(var c=this.chunkSize(b),e=Math.pow(b,c),d=!1,g=0,h=0,m=0;m<a.length;++m){var l=M(a,m);0>l?"-"==a.charAt(m)&&0==this.signum()&&
589(d=!0):(h=b*h+l,++g>=c&&(this.dMultiply(e),this.dAddOffset(h,0),h=g=0))}0<g&&(this.dMultiply(Math.pow(b,g)),this.dAddOffset(h,0));d&&k.ZERO.subTo(this,this)};k.prototype.fromNumber=function(a,b,c){if("number"==typeof b)if(2>a)this.fromInt(1);
589else for(this.fromNumber(a,c),this.testBit(a-1)||this.bitwiseTo(k.ONE.shiftLeft(a-1),H,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(b);)this.dAddOffset(2,0),this.bitLength()>a&&this.subTo(k.ONE.shiftLeft(a-1),this);else{c=[];var e=a&7;c.length=
590(a>>3)+1;b.nextBytes(c);c[0]=0<e?c[0]&(1<<e)-1:0;this.fromString(c,256)}};k.prototype.bitwiseTo=function(a,b,c){var e,d=Math.min(a.t,this.t);for(e=0;e<d;++e)c[e]=b(this[e],a[e]);if(a.t<this.t){var g=a.s&this.DM;for(e=d;e<this.t;++e)c[e]=b(this[e],g);c.t=this.t}else{g=this.s&this.DM;for(e=d;e<a.t;++e)c[e]=b(g,a[e]);c.t=a.t}c.s=b(this.s,a.s);c.clamp()};k.prototype.changeBit=function(a,b){var c=k.ONE.shiftLeft(a);this.bitwiseTo(c,b,c);return c};k.prototype.addTo=function(a,b){for(var c=0,e=0,d=Math.min(a.t,
591this.t);c<d;)e+=this[c]+a[c],b[c++]=e&this.DM,e>>=this.DB;if(a.t<this.t){for(e+=a.s;c<this.t;)e+=this[c],b[c++]=e&this.DM,e>>=this.DB;e+=this.s}else{for(e+=this.s;c<a.t;)e+=a[c],b[c++]=e&this.DM,e>>=this.DB;e+=a.s}b.s=0>e?-1:0;0<e?b[c++]=e:-1>e&&(b[c++]=this.DV+e);b.t=c;b.clamp()};k.prototype.dMultiply=function(a){this[this.t]=this.am(0,a-1,this,0,0,this.t);++this.t;this.clamp()};k.prototype.dAddOffset=function(a,b){if(0!=a){for(;this.t<=b;)this[this.t++]=0;for(this[b]+=a;this[b]>=this.DV;)this[b]-=
592this.DV,++b>=this.t&&(this[this.t++]=0),++this[b]}};k.prototype.multiplyLowerTo=function(a,b,c){var e=Math.min(this.t+a.t,b);c.s=0;for(c.t=e;0<e;)c[--e]=0;var d;for(d=c.t-this.t;e<d;++e)c[e+this.t]=this.am(0,a[e],c,e,0,this.t);for(d=Math.min(a.t,b);e<d;++e)this.am(0,a[e],c,e,0,b-e);c.clamp()};k.prototype.multiplyUpperTo=function(a,b,c){--b;var e=c.t=this.t+a.t-b;for(c.s=0;0<=--e;)c[e]=0;for(e=Math.max(b-this.t,0);e<a.t;++e)c[this.t+e-b]=this.am(b-e,a[e],c,0,0,this.t+e-b);c.clamp();c.drShiftTo(1,c)};
593k.prototype.modInt=function(a){if(0>=a)return 0;var b=this.DV%a,c=0>this.s?a-1:0;if(0<this.t)if(0==b)c=this[0]%a;else for(var e=this.t-1;0<=e;--e)c=(b*c+this[e])%a;return c};k.prototype.millerRabin=function(a){var b=this.subtract(k.ONE),c=b.getLowestSetBit();if(0>=c)return!1;var e=b.shiftRight(c);a=a+1>>1;a>w.length&&(a=w.length);for(var d=q(),g=0;g<a;++g){d.fromInt(w[Math.floor(Math.random()*w.length)]);var h=d.modPow(e,this);if(0!=h.compareTo(k.ONE)&&0!=h.compareTo(b)){for(var m=1;m++<c&&0!=h.compareTo(b);)if(h=
594h.modPowInt(2,this),0==h.compareTo(k.ONE))return!1;if(0!=h.compareTo(b))return!1}}return!0};k.prototype.clone=function(){var a=q();this.copyTo(a);return a};k.prototype.intValue=function(){if(0>this.s){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]};k.prototype.byteValue=function(){return 0==this.t?this.s:this[0]<<24>>24};k.prototype.shortValue=function(){return 0==this.t?this.s:this[0]<<
59516>>16};k.prototype.signum=function(){return 0>this.s?-1:0>=this.t||1==this.t&&0>=this[0]?0:1};k.prototype.toByteArray=function(){var a=this.t,b=[];b[0]=this.s;var c=this.DB-a*this.DB%8,e,d=0;if(0<a--)for(c<this.DB&&(e=this[a]>>c)!=(this.s&this.DM)>>c&&(b[d++]=e|this.s<<this.DB-c);0<=a;)if(8>c?(e=(this[a]&(1<<c)-1)<<8-c,e|=this[--a]>>(c+=this.DB-8)):(e=this[a]>>(c-=8)&255,0>=c&&(c+=this.DB,--a)),0!=(e&128)&&(e|=-256),0==d&&(this.s&128)!=(e&128)&&++d,0<d||e!=this.s)b[d++]=e;return b};k.prototype.equals=
596function(a){return 0==this.compareTo(a)};k.prototype.min=function(a){return 0>this.compareTo(a)?this:a};k.prototype.max=function(a){return 0<this.compareTo(a)?this:a};k.prototype.and=function(a){var b=q();this.bitwiseTo(a,U,b);return b};k.prototype.or=function(a){var b=q();this.bitwiseTo(a,H,b);return b};k.prototype.xor=function(a){var b=q();this.bitwiseTo(a,N,b);return b};k.prototype.andNot=function(a){var b=q();this.bitwiseTo(a,O,b);return b};k.prototype.not=function(){for(var a=q(),b=0;b<this.t;++b)a[b]=
597this.DM&~this[b];a.t=this.t;a.s=~this.s;return a};k.prototype.shiftLeft=function(a){var b=q();0>a?this.rShiftTo(-a,b):this.lShiftTo(a,b);return b};k.prototype.shiftRight=function(a){var b=q();0>a?this.lShiftTo(-a,b):this.rShiftTo(a,b);return b};k.prototype.getLowestSetBit=function(){for(var a=0;a<this.t;++a)if(0!=this[a]){var b=a*this.DB;a=this[a];if(0==a)a=-1;else{var c=0;0==(a&65535)&&(a>>=16,c+=16);0==(a&255)&&(a>>=8,c+=8);0==(a&15)&&(a>>=4,c+=4);0==(a&3)&&(a>>=2,c+=2);0==(a&1)&&++c;a=c}return b+
598a}return 0>this.s?this.t*this.DB:-1};k.prototype.bitCount=function(){for(var a=0,b=this.s&this.DM,c=0;c<this.t;++c){for(var e=this[c]^b,d=0;0!=e;)e&=e-1,++d;a+=d}return a};k.prototype.testBit=function(a){var b=Math.floor(a/this.DB);return b>=this.t?0!=this.s:0!=(this[b]&1<<a%this.DB)};k.prototype.setBit=function(a){return this.changeBit(a,H)};k.prototype.clearBit=function(a){return this.changeBit(a,O)};
598k.prototype.flipBit=function(a){return this.changeBit(a,N)};k.prototype.add=function(a){var b=q();
599this.addTo(a,b);return b};k.prototype.subtract=function(a){var b=q();this.subTo(a,b);return b};k.prototype.multiply=function(a){var b=q();this.multiplyTo(a,b);return b};k.prototype.divide=function(a){var b=q();this.divRemTo(a,b,null);return b};k.prototype.remainder=function(a){var b=q();this.divRemTo(a,null,b);return b};k.prototype.divideAndRemainder=function(a){var b=q(),c=q();this.divRemTo(a,b,c);return[b,c]};k.prototype.modPow=function(a,b){var c=a.bitLength(),e=y(1);if(0>=c)return e;var d=18>
600c?1:48>c?3:144>c?4:768>c?5:6;var g=8>c?new z(b):b.isEven()?new C(b):new B(b);var h=[],m=3,k=d-1,n=(1<<d)-1;h[1]=g.convert(this);if(1<d)for(c=q(),g.sqrTo(h[1],c);m<=n;)h[m]=q(),g.mulTo(c,h[m-2],h[m]),m+=2;var r=a.t-1,p=!0,t=q();for(c=F(a[r])-1;0<=r;){if(c>=k)var u=a[r]>>c-k&n;else u=(a[r]&(1<<c+1)-1)<<k-c,0<r&&(u|=a[r-1]>>this.DB+c-k);for(m=d;0==(u&1);)u>>=1,--m;0>(c-=m)&&(c+=this.DB,--r);if(p)h[u].copyTo(e),p=!1;else{for(;1<m;)g.sqrTo(e,t),g.sqrTo(t,e),m-=2;0<m?g.sqrTo(e,t):(m=e,e=t,t=m);g.mulTo(t,
601h[u],e)}for(;0<=r&&0==(a[r]&1<<c);)g.sqrTo(e,t),m=e,e=t,t=m,0>--c&&(c=this.DB-1,--r)}return g.revert(e)};k.prototype.modInverse=function(a){var b=a.isEven();if(this.isEven()&&b||0==a.signum())return k.ZERO;for(var c=a.clone(),e=this.clone(),d=y(1),g=y(0),h=y(0),m=y(1);0!=c.signum();){for(;c.isEven();)c.rShiftTo(1,c),b?(d.isEven()&&g.isEven()||(d.addTo(this,d),g.subTo(a,g)),d.rShiftTo(1,d)):g.isEven()||g.subTo(a,g),g.rShiftTo(1,g);for(;e.isEven();)e.rShiftTo(1,e),b?(h.isEven()&&m.isEven()||(h.addTo(this,
602h),m.subTo(a,m)),h.rShiftTo(1,h)):m.isEven()||m.subTo(a,m),m.rShiftTo(1,m);0<=c.compareTo(e)?(c.subTo(e,c),b&&d.subTo(h,d),g.subTo(m,g)):(e.subTo(c,e),b&&h.subTo(d,h),m.subTo(g,m))}if(0!=e.compareTo(k.ONE))return k.ZERO;if(0<=m.compareTo(a))return m.subtract(a);if(0>m.signum())m.addTo(a,m);else return m;return 0>m.signum()?m.add(a):m};k.prototype.pow=function(a){return this.exp(a,new D)};k.prototype.gcd=function(a){var b=0>this.s?this.negate():this.clone();a=0>a.s?a.negate():a.clone();if(0>b.compareTo(a)){var c=
603b;b=a;a=c}c=b.getLowestSetBit();var e=a.getLowestSetBit();if(0>e)return b;c<e&&(e=c);0<e&&(b.rShiftTo(e,b),a.rShiftTo(e,a));for(;0<b.signum();)0<(c=b.getLowestSetBit())&&b.rShiftTo(c,b),0<(c=a.getLowestSetBit())&&a.rShiftTo(c,a),0<=b.compareTo(a)?(b.subTo(a,b),b.rShiftTo(1,b)):(a.subTo(b,a),a.rShiftTo(1,a));0<e&&a.lShiftTo(e,a);return a};k.prototype.isProbablePrime=function(a){var b,c=this.abs();if(1==c.t&&c[0]<=w[w.length-1]){for(b=0;b<w.length;++b)if(c[0]==w[b])return!0;return!1}if(c.isEven())return!1;
604for(b=1;b<w.length;){for(var e=w[b],d=b+1;d<w.length&&e<W;)e*=w[d++];for(e=c.modInt(e);b<d;)if(0==e%w[b++])return!1}return c.millerRabin(a)};k.prototype.square=function(){var a=q();this.squareTo(a);return a};k.prototype.IsNegative=function(){return-1==this.compareTo(k.ZERO)?!0:!1};k.op_Equality=function(a,b){return 0==a.compareTo(b)?!0:!1};k.op_Inequality=function(a,b){return 0!=a.compareTo(b)?!0:!1};k.op_GreaterThan=function(a,b){return 0<a.compareTo(b)?!0:!1};k.op_LessThan=function(a,b){return 0>
605a.compareTo(b)?!0:!1};k.op_Addition=function(a,b){return(new k(a,void 0,void 0)).add(new k(b,void 0,void 0))};k.op_Subtraction=function(a,b){return(new k(a,void 0,void 0)).subtract(new k(b,void 0,void 0))};k.Int128Mul=function(a,b){return(new k(a,void 0,void 0)).multiply(new k(b,void 0,void 0))};k.op_Division=function(a,b){return a.divide(b)};k.prototype.ToDouble=function(){return parseFloat(this.toString())};v=function(a,b){var c;if("undefined"===typeof Object.getOwnPropertyNames)for(c in b.prototype){if("undefined"===
606typeof a.prototype[c]||a.prototype[c]===Object.prototype[c])a.prototype[c]=b.prototype[c]}else for(var e=Object.getOwnPropertyNames(b.prototype),d=0;d<e.length;d++)"undefined"===typeof Object.getOwnPropertyDescriptor(a.prototype,e[d])&&Object.defineProperty(a.prototype,e[d],Object.getOwnPropertyDescriptor(b.prototype,e[d]));for(c in b)"undefined"===typeof a[c]&&(a[c]=b[c]);a.$baseCtor=b};d.Path=function(){return[]};d.Path.prototype.push=Array.prototype.push;d.Paths=function(){return[]};d.Paths.prototype.push=
607Array.prototype.push;d.DoublePoint=function(){var a=arguments;
607this.Y=this.X=0;1===a.length?(this.X=a[0].X,this.Y=a[0].Y):2===a.length&&(this.X=a[0],this.Y=a[1])};d.DoublePoint0=function(){this.Y=this.X=0};d.DoublePoint0.prototype=d.DoublePoint.prototype;d.DoublePoint1=function(a){this.X=a.X;this.Y=a.Y};d.DoublePoint1.prototype=d.DoublePoint.prototype;d.DoublePoint2=function(a,b){this.X=a;this.Y=b};d.DoublePoint2.prototype=d.DoublePoint.prototype;d.PolyNode=function(){this.m_Parent=null;this.m_polygon=
608new d.Path;this.m_endtype=this.m_jointype=this.m_Index=0;this.m_Childs=[];this.IsOpen=!1};d.PolyNode.prototype.IsHoleNode=function(){for(var a=!0,b=this.m_Parent;null!==b;)a=!a,b=b.m_Parent;return a};d.PolyNode.prototype.ChildCount=function(){return this.m_Childs.length};d.PolyNode.prototype.Contour=function(){return this.m_polygon};d.PolyNode.prototype.AddChild=function(a){var b=this.m_Childs.length;this.m_Childs.push(a);a.m_Parent=this;a.m_Index=b};d.PolyNode.prototype.GetNext=function(){return 0<
609this.m_Childs.length?this.m_Childs[0]:this.GetNextSiblingUp()};d.PolyNode.prototype.GetNextSiblingUp=function(){return null===this.m_Parent?null:this.m_Index===this.m_Parent.m_Childs.length-1?this.m_Parent.GetNextSiblingUp():this.m_Parent.m_Childs[this.m_Index+1]};d.PolyNode.prototype.Childs=function(){return this.m_Childs};d.PolyNode.prototype.Parent=function(){return this.m_Parent};d.PolyNode.prototype.IsHole=function(){return this.IsHoleNode()};d.PolyTree=function(){this.m_AllPolys=[];d.PolyNode.call(this)};
610d.PolyTree.prototype.Clear=function(){for(var a=0,b=this.m_AllPolys.length;a<b;a++)this.m_AllPolys[a]=null;this.m_AllPolys.length=0;this.m_Childs.length=0};d.PolyTree.prototype.GetFirst=function(){return 0<this.m_Childs.length?this.m_Childs[0]:null};d.PolyTree.prototype.Total=function(){var a=this.m_AllPolys.length;0<a&&this.m_Childs[0]!==this.m_AllPolys[0]&&a--;return a};v(d.PolyTree,d.PolyNode);d.Math_Abs_Int64=d.Math_Abs_Int32=d.Math_Abs_Double=function(a){return Math.abs(a)};d.Math_Max_Int32_Int32=
611function(a,b){return Math.max(a,b)};d.Cast_Int32=u||K||Q?function(a){return a|0}:function(a){return~~a};"undefined"===typeof Number.toInteger&&(Number.toInteger=null);d.Cast_Int64=I?function(a){return-2147483648>a||2147483647<a?0>a?Math.ceil(a):Math.floor(a):~~a}:J&&"function"===typeof Number.toInteger?function(a){return Number.toInteger(a)}:V||L?function(a){return parseInt(a,10)}:u?function(a){return-2147483648>a||2147483647<a?0>a?Math.ceil(a):Math.floor(a):a|0}:function(a){return 0>a?Math.ceil(a):
612Math.floor(a)};d.Clear=function(a){a.length=0};d.PI=3.141592653589793;d.PI2=6.283185307179586;d.IntPoint=function(){var a=arguments;var b=a.length;this.Y=this.X=0;d.use_xyz?(this.Z=0,3===b?(this.X=a[0],this.Y=a[1],this.Z=a[2]):2===b?(this.X=a[0],this.Y=a[1],this.Z=0):1===b?a[0]instanceof d.DoublePoint?(a=a[0],this.X=d.Clipper.Round(a.X),this.Y=d.Clipper.Round(a.Y),this.Z=0):(a=a[0],"undefined"===typeof a.Z&&(a.Z=0),this.X=a.X,this.Y=a.Y,this.Z=a.Z):this.Z=this.Y=this.X=0):2===b?(this.X=a[0],this.Y=
613a[1]):1===b?a[0]instanceof d.DoublePoint?(a=a[0],this.X=d.Clipper.Round(a.X),this.Y=d.Clipper.Round(a.Y)):(a=a[0],this.X=a.X,this.Y=a.Y):this.Y=this.X=0};d.IntPoint.op_Equality=function(a,b){return a.X===b.X&&a.Y===b.Y};d.IntPoint.op_Inequality=function(a,b){return a.X!==b.X||a.Y!==b.Y};d.IntPoint0=function(){this.Y=this.X=0;d.use_xyz&&(this.Z=0)};d.IntPoint0.prototype=d.IntPoint.prototype;d.IntPoint1=function(a){this.X=a.X;this.Y=a.Y;d.use_xyz&&(this.Z="undefined"===typeof a.Z?0:a.Z)};d.IntPoint1.prototype=
614d.IntPoint.prototype;d.IntPoint1dp=function(a){this.X=d.Clipper.Round(a.X);this.Y=d.Clipper.Round(a.Y);d.use_xyz&&(this.Z=0)};d.IntPoint1dp.prototype=d.IntPoint.prototype;d.IntPoint2=function(a,b,c){this.X=a;this.Y=b;d.use_xyz&&(this.Z="undefined"===typeof c?0:c)};d.IntPoint2.prototype=d.IntPoint.prototype;d.IntRect=function(){var a=arguments,b=a.length;4===b?(this.left=a[0],this.top=a[1],this.right=a[2],this.bottom=a[3]):1===b?(a=a[0],this.left=a.left,this.top=a.top,this.right=a.right,this.bottom=
615a.bottom):this.bottom=this.right=this.top=this.left=0};d.IntRect0=function(){this.bottom=this.right=this.top=this.left=0};d.IntRect0.prototype=d.IntRect.prototype;d.IntRect1=function(a){this.left=a.left;this.top=a.top;this.right=a.right;this.bottom=a.bottom};d.IntRect1.prototype=d.IntRect.prototype;d.IntRect4=function(a,b,c,e){this.left=a;this.top=b;this.right=c;this.bottom=e};d.IntRect4.prototype=d.IntRect.prototype;d.ClipType={ctIntersection:0,ctUnion:1,ctDifference:2,ctXor:3};d.PolyType={ptSubject:0,
616ptClip:1};d.PolyFillType={pftEvenOdd:0,pftNonZero:1,pftPositive:2,pftNegative:3};d.JoinType={jtSquare:0,jtRound:1,jtMiter:2};d.EndType={etOpenSquare:0,etOpenRound:1,etOpenButt:2,etClosedLine:3,etClosedPolygon:4};d.EdgeSide={esLeft:0,esRight:1};d.Direction={dRightToLeft:0,dLeftToRight:1};d.TEdge=function(){this.Bot=new d.IntPoint0;this.Curr=new d.IntPoint0;this.Top=new d.IntPoint0;this.Delta=new d.IntPoint0;this.Dx=0;this.PolyTyp=d.PolyType.ptSubject;this.Side=d.EdgeSide.esLeft;this.OutIdx=this.WindCnt2=
617this.WindCnt=this.WindDelta=0;this.PrevInSEL=this.NextInSEL=this.PrevInAEL=this.NextInAEL=this.NextInLML=this.Prev=this.Next=null};d.IntersectNode=function(){this.Edge2=this.Edge1=null;this.Pt=new d.IntPoint0};d.MyIntersectNodeSort=function(){};d.MyIntersectNodeSort.Compare=function(a,b){var c=b.Pt.Y-a.Pt.Y;return 0<c?1:0>c?-1:0};d.LocalMinima=function(){this.Y=0;this.Next=this.RightBound=this.LeftBound=null};d.Scanbeam=function(){this.Y=0;this.Next=null};d.Maxima=function(){this.X=0;this.Prev=this.Next=
618null};d.OutRec=function(){this.Idx=0;this.IsOpen=this.IsHole=!1;this.PolyNode=this.BottomPt=this.Pts=this.FirstLeft=null};d.OutPt=function(){this.Idx=0;this.Pt=new d.IntPoint0;this.Prev=this.Next=null};d.Join=function(){this.OutPt2=this.OutPt1=null;this.OffPt=new d.IntPoint0};d.ClipperBase=function(){this.m_CurrentLM=this.m_MinimaList=null;this.m_edges=[];this.PreserveCollinear=this.m_HasOpenPaths=this.m_UseFullRange=!1;this.m_ActiveEdges=this.m_PolyOuts=this.m_Scanbeam=null};d.ClipperBase.horizontal=
619-9007199254740992;d.ClipperBase.Skip=-2;d.ClipperBase.Unassigned=-1;d.ClipperBase.tolerance=1E-20;d.ClipperBase.loRange=47453132;d.ClipperBase.hiRange=0xfffffffffffff;d.ClipperBase.near_zero=function(a){return a>-d.ClipperBase.tolerance&&a<d.ClipperBase.tolerance};d.ClipperBase.IsHorizontal=function(a){return 0===a.Delta.Y};d.ClipperBase.prototype.PointIsVertex=function(a,b){var c=b;do{if(d.IntPoint.op_Equality(c.Pt,a))return!0;c=c.Next}while(c!==b);return!1};d.ClipperBase.prototype.PointOnLineSegment=
620function(a,b,c,e){return e?a.X===b.X&&a.Y===b.Y||a.X===c.X&&a.Y===c.Y||a.X>b.X===a.X<c.X&&a.Y>b.Y===a.Y<c.Y&&k.op_Equality(k.Int128Mul(a.X-b.X,c.Y-b.Y),k.Int128Mul(c.X-b.X,a.Y-b.Y)):a.X===b.X&&a.Y===b.Y||a.X===c.X&&a.Y===c.Y||a.X>b.X===a.X<c.X&&a.Y>b.Y===a.Y<c.Y&&(a.X-b.X)*(c.Y-b.Y)===(c.X-b.X)*(a.Y-b.Y)};d.ClipperBase.prototype.PointOnPolygon=function(a,b,c){for(var e=b;;){if(this.PointOnLineSegment(a,e.Pt,e.Next.Pt,c))return!0;e=e.Next;if(e===b)break}return!1};d.ClipperBase.prototype.SlopesEqual=
621d.ClipperBase.SlopesEqual=function(){var a=arguments,b=a.length;if(3===b){b=a[0];var c=a[1];return(a=a[2])?k.op_Equality(k.Int128Mul(b.Delta.Y,c.Delta.X),k.Int128Mul(b.Delta.X,c.Delta.Y)):d.Cast_Int64(b.Delta.Y*c.Delta.X)===d.
621Cast_Int64(b.Delta.X*c.Delta.Y)}if(4===b){b=a[0];c=a[1];var e=a[2];return(a=a[3])?k.op_Equality(k.Int128Mul(b.Y-c.Y,c.X-e.X),k.Int128Mul(b.X-c.X,c.Y-e.Y)):0===d.Cast_Int64((b.Y-c.Y)*(c.X-e.X))-d.Cast_Int64((b.X-c.X)*(c.Y-e.Y))}b=a[0];c=a[1];e=a[2];var f=a[3];return(a=a[4])?k.op_Equality(k.Int128Mul(b.Y-
622c.Y,e.X-f.X),k.Int128Mul(b.X-c.X,e.Y-f.Y)):0===d.Cast_Int64((b.Y-c.Y)*(e.X-f.X))-d.Cast_Int64((b.X-c.X)*(e.Y-f.Y))};d.ClipperBase.SlopesEqual3=function(a,b,c){return c?k.op_Equality(k.Int128Mul(a.Delta.Y,b.Delta.X),k.Int128Mul(a.Delta.X,b.Delta.Y)):d.Cast_Int64(a.Delta.Y*b.Delta.X)===d.Cast_Int64(a.Delta.X*b.Delta.Y)};d.ClipperBase.SlopesEqual4=function(a,b,c,e){return e?k.op_Equality(k.Int128Mul(a.Y-b.Y,b.X-c.X),k.Int128Mul(a.X-b.X,b.Y-c.Y)):0===d.Cast_Int64((a.Y-b.Y)*(b.X-c.X))-d.Cast_Int64((a.X-
623b.X)*(b.Y-c.Y))};d.ClipperBase.SlopesEqual5=function(a,b,c,e,f){return f?k.op_Equality(k.Int128Mul(a.Y-b.Y,c.X-e.X),k.Int128Mul(a.X-b.X,c.Y-e.Y)):0===d.Cast_Int64((a.Y-b.Y)*(c.X-e.X))-d.Cast_Int64((a.X-b.X)*(c.Y-e.Y))};d.ClipperBase.prototype.Clear=function(){this.DisposeLocalMinimaList();for(var a=0,b=this.m_edges.length;a<b;++a){for(var c=0,e=this.m_edges[a].length;c<e;++c)this.m_edges[a][c]=null;d.Clear(this.m_edges[a])}d.Clear(this.m_edges);this.m_HasOpenPaths=this.m_UseFullRange=!1};d.ClipperBase.prototype.DisposeLocalMinimaList=
624function(){for(;null!==this.m_MinimaList;){var a=this.m_MinimaList.Next;this.m_MinimaList=null;this.m_MinimaList=a}this.m_CurrentLM=null};d.ClipperBase.prototype.RangeTest=function(a,b){if(b.Value)(a.X>d.ClipperBase.hiRange||a.Y>d.ClipperBase.hiRange||-a.X>d.ClipperBase.hiRange||-a.Y>d.ClipperBase.hiRange)&&d.Error("Coordinate outside allowed range in RangeTest().");else if(a.X>d.ClipperBase.loRange||a.Y>d.ClipperBase.loRange||-a.X>d.ClipperBase.loRange||-a.Y>d.ClipperBase.loRange)b.Value=!0,this.RangeTest(a,
625b)};d.ClipperBase.prototype.InitEdge=function(a,b,c,e){a.Next=b;a.Prev=c;a.Curr.X=e.X;a.Curr.Y=e.Y;d.use_xyz&&(a.Curr.Z=e.Z);a.OutIdx=-1};d.ClipperBase.prototype.InitEdge2=function(a,b){a.Curr.Y>=a.Next.Curr.Y?(a.Bot.X=a.Curr.X,a.Bot.Y=a.Curr.Y,d.use_xyz&&(a.Bot.Z=a.Curr.Z),a.Top.X=a.Next.Curr.X,a.Top.Y=a.Next.Curr.Y,d.use_xyz&&(a.Top.Z=a.Next.Curr.Z)):(a.Top.X=a.Curr.X,a.Top.Y=a.Curr.Y,d.use_xyz&&(a.Top.Z=a.Curr.Z),a.Bot.X=a.Next.Curr.X,a.Bot.Y=a.Next.Curr.Y,d.use_xyz&&(a.Bot.Z=a.Next.Curr.Z));this.SetDx(a);
626a.PolyTyp=b};d.ClipperBase.prototype.FindNextLocMin=function(a){for(var b;;){for(;d.IntPoint.op_Inequality(a.Bot,a.Prev.Bot)||d.IntPoint.op_Equality(a.Curr,a.Top);)a=a.Next;if(a.Dx!==d.ClipperBase.horizontal&&a.Prev.Dx!==d.ClipperBase.horizontal)break;for(;a.Prev.Dx===d.ClipperBase.horizontal;)a=a.Prev;for(b=a;a.Dx===d.ClipperBase.horizontal;)a=a.Next;if(a.Top.Y!==a.Prev.Bot.Y){b.Prev.Bot.X<a.Bot.X&&(a=b);break}}return a};d.ClipperBase.prototype.ProcessBound=function(a,b){var c=a,e;if(c.OutIdx===
627d.ClipperBase.Skip){a=c;if(b){for(;a.Top.Y===a.Next.Bot.Y;)a=a.Next;for(;a!==c&&a.Dx===d.ClipperBase.horizontal;)a=a.Prev}else{for(;a.Top.Y===a.Prev.Bot.Y;)a=a.Prev;for(;a!==c&&a.Dx===d.ClipperBase.horizontal;)a=a.Next}if(a===c)c=b?a.Next:a.Prev;else{a=b?c.Next:c.Prev;var f=new d.LocalMinima;f.Next=null;f.Y=a.Bot.Y;f.LeftBound=null;f.RightBound=a;a.WindDelta=0;c=this.ProcessBound(a,b);this.InsertLocalMinima(f)}return c}a.Dx===d.ClipperBase.horizontal&&(f=b?a.Prev:a.Next,f.Dx===d.ClipperBase.horizontal?
628f.Bot.X!==a.Bot.X&&f.Top.X!==a.Bot.X&&this.ReverseHorizontal(a):f.Bot.X!==a.Bot.X&&this.ReverseHorizontal(a));f=a;if(b){for(;c.Top.Y===c.Next.Bot.Y&&c.Next.OutIdx!==d.ClipperBase.Skip;)c=c.Next;if(c.Dx===d.ClipperBase.horizontal&&c.Next.OutIdx!==d.ClipperBase.Skip){for(e=c;e.Prev.Dx===d.ClipperBase.horizontal;)e=e.Prev;e.Prev.Top.X>c.Next.Top.X&&(c=e.Prev)}for(;a!==c;)a.NextInLML=a.Next,a.Dx===d.ClipperBase.horizontal&&a!==f&&a.Bot.X!==a.Prev.Top.X&&this.ReverseHorizontal(a),a=a.Next;a.Dx===d.ClipperBase.horizontal&&
629a!==f&&a.Bot.X!==a.Prev.Top.X&&this.ReverseHorizontal(a);c=c.Next}else{for(;c.Top.Y===c.Prev.Bot.Y&&c.Prev.OutIdx!==d.ClipperBase.Skip;)c=c.Prev;if(c.Dx===d.ClipperBase.horizontal&&c.Prev.OutIdx!==d.ClipperBase.Skip){for(e=c;e.Next.Dx===d.ClipperBase.horizontal;)e=e.Next;if(e.Next.Top.X===c.Prev.Top.X||e.Next.Top.X>c.Prev.Top.X)c=e.Next}for(;a!==c;)a.NextInLML=a.Prev,a.Dx===d.ClipperBase.horizontal&&a!==f&&a.Bot.X!==a.Next.Top.X&&this.ReverseHorizontal(a),a=a.Prev;a.Dx===d.ClipperBase.horizontal&&
630a!==f&&a.Bot.X!==a.Next.Top.X&&this.ReverseHorizontal(a);c=c.Prev}return c};d.ClipperBase.prototype.AddPath=function(a,b,c){d.use_lines?c||b!==d.PolyType.ptClip||d.Error("AddPath: Open paths must be subject."):c||d.Error("AddPath: Open paths have been disabled.");var e=a.length-1;if(c)for(;0<e&&d.IntPoint.op_Equality(a[e],a[0]);)--e;for(;0<e&&d.IntPoint.op_Equality(a[e],a[e-1]);)--e;if(c&&2>e||!c&&1>e)return!1;for(var f=[],g=0;g<=e;g++)f.push(new d.TEdge);var h=!0;f[1].Curr.X=a[1].X;f[1].Curr.Y=a[1].Y;
631d.use_xyz&&(f[1].Curr.Z=a[1].Z);var m={Value:this.m_UseFullRange};this.RangeTest(a[0],m);this.m_UseFullRange=m.Value;m.Value=this.m_UseFullRange;this.RangeTest(a[e],m);this.m_UseFullRange=m.Value;this.InitEdge(f[0],f[1],f[e],a[0]);this.InitEdge(f[e],f[0],f[e-1],a[e]);for(g=e-1;1<=g;--g)m.Value=this.m_UseFullRange,this.RangeTest(a[g],m),this.m_UseFullRange=m.Value,this.InitEdge(f[g],f[g+1],f[g-1],a[g]);for(g=a=e=f[0];;)if(a.Curr!==a.Next.Curr||!c&&a.Next===e){if(a.Prev===a.Next)break;else if(c&&d.ClipperBase.SlopesEqual4(a.Prev.Curr,
632a.Curr,a.Next.Curr,this.m_UseFullRange)&&(!this.PreserveCollinear||!this.Pt2IsBetweenPt1AndPt3(a.Prev.Curr,a.Curr,a.Next.Curr))){a===e&&(e=a.Next);a=this.RemoveEdge(a);g=a=a.Prev;continue}a=a.Next;if(a===g||!c&&a.Next===e)break}else{if(a===a.Next)break;a===e&&(e=a.Next);g=a=this.RemoveEdge(a)}if(!c&&a===a.Next||c&&a.Prev===a.Next)return!1;c||(this.m_HasOpenPaths=!0,e.Prev.OutIdx=d.ClipperBase.Skip);a=e;do this.InitEdge2(a,b),a=a.Next,h&&a.Curr.Y!==e.Curr.Y&&(h=!1);while(a!==e);if(h){if(c)return!1;
633a.Prev.OutIdx=d.ClipperBase.Skip;b=new d.LocalMinima;b.Next=null;b.Y=a.Bot.Y;b.LeftBound=null;b.RightBound=a;b.RightBound.Side=d.EdgeSide.esRight;for(b.RightBound.WindDelta=0;;){a.Bot.X!==a.Prev.Top.X&&this.ReverseHorizontal(a);
633if(a.Next.OutIdx===d.ClipperBase.Skip)break;a=a.NextInLML=a.Next}this.InsertLocalMinima(b);this.m_edges.push(f);return!0}this.m_edges.push(f);h=null;d.IntPoint.op_Equality(a.Prev.Bot,a.Prev.Top)&&(a=a.Next);for(;;){a=this.FindNextLocMin(a);if(a===h)break;else null===h&&(h=
634a);b=new d.LocalMinima;b.Next=null;b.Y=a.Bot.Y;a.Dx<a.Prev.Dx?(b.LeftBound=a.Prev,b.RightBound=a,f=!1):(b.LeftBound=a,b.RightBound=a.Prev,f=!0);b.LeftBound.Side=d.EdgeSide.esLeft;b.RightBound.Side=d.EdgeSide.esRight;b.LeftBound.WindDelta=c?b.LeftBound.Next===b.RightBound?-1:1:0;b.RightBound.WindDelta=-b.LeftBound.WindDelta;a=this.ProcessBound(b.LeftBound,f);a.OutIdx===d.ClipperBase.Skip&&(a=this.ProcessBound(a,f));e=this.ProcessBound(b.RightBound,!f);e.OutIdx===d.ClipperBase.Skip&&(e=this.ProcessBound(e,
635!f));b.LeftBound.OutIdx===d.ClipperBase.Skip?b.LeftBound=null:b.RightBound.OutIdx===d.ClipperBase.Skip&&(b.RightBound=null);this.InsertLocalMinima(b);f||(a=e)}return!0};d.ClipperBase.prototype.AddPaths=function(a,b,c){for(var e=!1,d=0,g=a.length;d<g;++d)this.AddPath(a[d],b,c)&&(e=!0);return e};d.ClipperBase.prototype.Pt2IsBetweenPt1AndPt3=function(a,b,c){return d.IntPoint.op_Equality(a,c)||d.IntPoint.op_Equality(a,b)||d.IntPoint.op_Equality(c,b)?!1:a.X!==c.X?b.X>a.X===b.X<c.X:b.Y>a.Y===b.Y<c.Y};d.ClipperBase.prototype.RemoveEdge=
636function(a){a.Prev.Next=a.Next;a.Next.Prev=a.Prev;var b=a.Next;a.Prev=null;return b};d.ClipperBase.prototype.SetDx=function(a){a.Delta.X=a.Top.X-a.Bot.X;a.Delta.Y=a.Top.Y-a.Bot.Y;a.Dx=0===a.Delta.Y?d.ClipperBase.horizontal:a.Delta.X/a.Delta.Y};d.ClipperBase.prototype.InsertLocalMinima=function(a){if(null===this.m_MinimaList)this.m_MinimaList=a;else if(a.Y>=this.m_MinimaList.Y)a.Next=this.m_MinimaList,this.m_MinimaList=a;else{for(var b=this.m_MinimaList;null!==b.Next&&a.Y<b.Next.Y;)b=b.Next;a.Next=
637b.Next;b.Next=a}};d.ClipperBase.prototype.PopLocalMinima=function(a,b){b.v=this.m_CurrentLM;return null!==this.m_CurrentLM&&this.m_CurrentLM.Y===a?(this.m_CurrentLM=this.m_CurrentLM.Next,!0):!1};d.ClipperBase.prototype.ReverseHorizontal=function(a){var b=a.Top.X;a.Top.X=a.Bot.X;a.Bot.X=b;d.use_xyz&&(b=a.Top.Z,a.Top.Z=a.Bot.Z,a.Bot.Z=b)};d.ClipperBase.prototype.Reset=function(){this.m_CurrentLM=this.m_MinimaList;if(null!==this.m_CurrentLM){this.m_Scanbeam=null;for(var a=this.m_MinimaList;null!==a;){this.InsertScanbeam(a.Y);
638var b=a.LeftBound;null!==b&&(b.Curr.X=b.Bot.X,b.Curr.Y=b.Bot.Y,d.use_xyz&&(b.Curr.Z=b.Bot.Z),b.OutIdx=d.ClipperBase.Unassigned);b=a.RightBound;null!==b&&(b.Curr.X=b.Bot.X,b.Curr.Y=b.Bot.Y,d.use_xyz&&(b.Curr.Z=b.Bot.Z),b.OutIdx=d.ClipperBase.Unassigned);a=a.Next}this.m_ActiveEdges=null}};d.ClipperBase.prototype.InsertScanbeam=function(a){if(null===this.m_Scanbeam)this.m_Scanbeam=new d.Scanbeam,this.m_Scanbeam.Next=null,this.m_Scanbeam.Y=a;else if(a>this.m_Scanbeam.Y){var b=new d.Scanbeam;b.Y=a;b.Next=
639this.m_Scanbeam;this.m_Scanbeam=b}else{for(b=this.m_Scanbeam;null!==b.Next&&a<=b.Next.Y;)b=b.Next;if(a!==b.Y){var c=new d.Scanbeam;c.Y=a;c.Next=b.Next;b.Next=c}}};d.ClipperBase.prototype.PopScanbeam=function(a){if(null===this.m_Scanbeam)return a.v=0,!1;a.v=this.m_Scanbeam.Y;this.m_Scanbeam=this.m_Scanbeam.Next;return!0};d.ClipperBase.prototype.LocalMinimaPending=function(){return null!==this.m_CurrentLM};d.ClipperBase.prototype.CreateOutRec=function(){var a=new d.OutRec;a.Idx=d.ClipperBase.Unassigned;
640a.IsHole=!1;a.IsOpen=!1;a.FirstLeft=null;a.Pts=null;a.BottomPt=null;a.PolyNode=null;this.m_PolyOuts.push(a);a.Idx=this.m_PolyOuts.length-1;return a};d.ClipperBase.prototype.DisposeOutRec=function(a){this.m_PolyOuts[a].Pts=null;this.m_PolyOuts[a]=null};d.ClipperBase.prototype.UpdateEdgeIntoAEL=function(a){null===a.NextInLML&&d.Error("UpdateEdgeIntoAEL: invalid call");var b=a.PrevInAEL,c=a.NextInAEL;a.NextInLML.OutIdx=a.OutIdx;null!==b?b.NextInAEL=a.NextInLML:this.m_ActiveEdges=a.NextInLML;null!==c&&
641(c.PrevInAEL=a.NextInLML);a.NextInLML.Side=a.Side;a.NextInLML.WindDelta=a.WindDelta;a.NextInLML.WindCnt=a.WindCnt;a.NextInLML.WindCnt2=a.WindCnt2;a=a.NextInLML;a.Curr.X=a.Bot.X;a.Curr.Y=a.Bot.Y;a.PrevInAEL=b;a.NextInAEL=c;d.ClipperBase.IsHorizontal(a)||this.InsertScanbeam(a.Top.Y);return a};d.ClipperBase.prototype.SwapPositionsInAEL=function(a,b){if(a.NextInAEL!==a.PrevInAEL&&b.NextInAEL!==b.PrevInAEL){if(a.NextInAEL===b){var c=b.NextInAEL;null!==c&&(c.PrevInAEL=a);var e=a.PrevInAEL;null!==e&&(e.NextInAEL=
642b);b.PrevInAEL=e;b.NextInAEL=a;a.PrevInAEL=b;a.NextInAEL=c}else b.NextInAEL===a?(c=a.NextInAEL,null!==c&&(c.PrevInAEL=b),e=b.PrevInAEL,null!==e&&(e.NextInAEL=a),a.PrevInAEL=e,a.NextInAEL=b,b.PrevInAEL=a,b.NextInAEL=c):(c=a.NextInAEL,e=a.PrevInAEL,a.NextInAEL=b.NextInAEL,null!==a.NextInAEL&&(a.NextInAEL.PrevInAEL=a),a.PrevInAEL=b.PrevInAEL,null!==a.PrevInAEL&&(a.PrevInAEL.NextInAEL=a),b.NextInAEL=c,null!==b.NextInAEL&&(b.NextInAEL.PrevInAEL=b),b.PrevInAEL=e,null!==b.PrevInAEL&&(b.PrevInAEL.NextInAEL=
643b));null===a.PrevInAEL?this.m_ActiveEdges=a:null===b.PrevInAEL&&(this.m_ActiveEdges=b)}};d.ClipperBase.prototype.DeleteFromAEL=function(a){var b=a.PrevInAEL,c=a.NextInAEL;if(null!==b||null!==c||a===this.m_ActiveEdges)null!==b?b.NextInAEL=c:this.m_ActiveEdges=c,null!==c&&(c.PrevInAEL=b),a.NextInAEL=null,a.PrevInAEL=null};d.Clipper=function(a){"undefined"===typeof a&&(a=0);this.m_PolyOuts=null;this.m_ClipType=d.ClipType.ctIntersection;this.m_IntersectNodeComparer=this.m_IntersectList=this.m_SortedEdges=
644this.m_ActiveEdges=this.m_Maxima=this.m_Scanbeam=null;this.m_ExecuteLocked=!1;this.m_SubjFillType=this.m_ClipFillType=d.PolyFillType.pftEvenOdd;this.m_GhostJoins=this.m_Joins=null;
644this.StrictlySimple=this.ReverseSolution=this.m_UsingPolyTree=!1;d.ClipperBase.call(this);this.m_SortedEdges=this.m_ActiveEdges=this.m_Maxima=this.m_Scanbeam=null;this.m_IntersectList=[];this.m_IntersectNodeComparer=d.MyIntersectNodeSort.Compare;this.m_UsingPolyTree=this.m_ExecuteLocked=!1;this.m_PolyOuts=[];this.m_Joins=
645[];this.m_GhostJoins=[];this.ReverseSolution=0!==(1&a);this.StrictlySimple=0!==(2&a);this.PreserveCollinear=0!==(4&a);d.use_xyz&&(this.ZFillFunction=null)};d.Clipper.ioReverseSolution=1;d.Clipper.ioStrictlySimple=2;d.Clipper.ioPreserveCollinear=4;d.Clipper.prototype.Clear=function(){0!==this.m_edges.length&&(this.DisposeAllPolyPts(),d.ClipperBase.prototype.Clear.call(this))};d.Clipper.prototype.InsertMaxima=function(a){var b=new d.Maxima;b.X=a;if(null===this.m_Maxima)this.m_Maxima=b,this.m_Maxima.Next=
646null,this.m_Maxima.Prev=null;else if(a<this.m_Maxima.X)b.Next=this.m_Maxima,b.Prev=null,this.m_Maxima=b;else{for(var c=this.m_Maxima;null!==c.Next&&a>=c.Next.X;)c=c.Next;a!==c.X&&(b.Next=c.Next,b.Prev=c,null!==c.Next&&(c.Next.Prev=b),c.Next=b)}};d.Clipper.prototype.Execute=function(){var a;var b=arguments;var c=b.length;var e=b[1]instanceof d.PolyTree;if(4!==c||e){if(4===c&&e){c=b[0];var f=b[1];e=b[2];b=b[3];if(this.m_ExecuteLocked)return!1;this.m_ExecuteLocked=!0;this.m_SubjFillType=e;this.m_ClipFillType=
647b;this.m_ClipType=c;this.m_UsingPolyTree=!0;try{(a=this.ExecuteInternal())&&this.BuildResult2(f)}finally{this.DisposeAllPolyPts(),this.m_ExecuteLocked=!1}return a}if(2===c&&!e||2===c&&e)return c=b[0],f=b[1],this.Execute(c,f,d.PolyFillType.pftEvenOdd,d.PolyFillType.pftEvenOdd)}else{c=b[0];f=b[1];e=b[2];b=b[3];if(this.m_ExecuteLocked)return!1;this.m_HasOpenPaths&&d.Error("Error: PolyTree struct is needed for open path clipping.");this.m_ExecuteLocked=!0;d.Clear(f);this.m_SubjFillType=e;this.m_ClipFillType=
648b;this.m_ClipType=c;this.m_UsingPolyTree=!1;try{(a=this.ExecuteInternal())&&this.BuildResult(f)}finally{this.DisposeAllPolyPts(),this.m_ExecuteLocked=!1}return a}};d.Clipper.prototype.FixHoleLinkage=function(a){if(null!==a.FirstLeft&&(a.IsHole===a.FirstLeft.IsHole||null===a.FirstLeft.Pts)){for(var b=a.FirstLeft;null!==b&&(b.IsHole===a.IsHole||null===b.Pts);)b=b.FirstLeft;a.FirstLeft=b}};d.Clipper.prototype.ExecuteInternal=function(){try{this.Reset();this.m_Maxima=this.m_SortedEdges=null;var a={},
649b={};if(!this.PopScanbeam(a))return!1;for(this.InsertLocalMinimaIntoAEL(a.v);this.PopScanbeam(b)||this.LocalMinimaPending();){this.ProcessHorizontals();this.m_GhostJoins.length=0;if(!this.ProcessIntersections(b.v))return!1;this.ProcessEdgesAtTopOfScanbeam(b.v);a.v=b.v;this.InsertLocalMinimaIntoAEL(a.v)}var c;var e=0;for(c=this.m_PolyOuts.length;e<c;e++){var d=this.m_PolyOuts[e];null===d.Pts||d.IsOpen||(d.IsHole^this.ReverseSolution)==0<this.Area$1(d)&&this.ReversePolyPtLinks(d.Pts)}this.JoinCommonEdges();
650e=0;for(c=this.m_PolyOuts.length;e<c;e++)d=this.m_PolyOuts[e],null!==d.Pts&&(d.IsOpen?this.FixupOutPolyline(d):this.FixupOutPolygon(d));this.StrictlySimple&&this.DoSimplePolygons();return!0}finally{this.m_Joins.length=0,this.m_GhostJoins.length=0}};d.Clipper.prototype.DisposeAllPolyPts=function(){for(var a=0,b=this.m_PolyOuts.length;a<b;++a)this.DisposeOutRec(a);d.Clear(this.m_PolyOuts)};d.Clipper.prototype.AddJoin=function(a,b,c){var e=new d.Join;e.OutPt1=a;e.OutPt2=b;e.OffPt.X=c.X;e.OffPt.Y=c.Y;
651d.use_xyz&&(e.OffPt.Z=c.Z);this.m_Joins.push(e)};d.Clipper.prototype.AddGhostJoin=function(a,b){var c=new d.Join;c.OutPt1=a;c.OffPt.X=b.X;c.OffPt.Y=b.Y;d.use_xyz&&(c.OffPt.Z=b.Z);this.m_GhostJoins.push(c)};d.Clipper.prototype.SetZ=function(a,b,c){null!==this.ZFillFunction&&0===a.Z&&null!==this.ZFillFunction&&(d.IntPoint.op_Equality(a,b.Bot)?a.Z=b.Bot.Z:d.IntPoint.op_Equality(a,b.Top)?a.Z=b.Top.Z:d.IntPoint.op_Equality(a,c.Bot)?a.Z=c.Bot.Z:d.IntPoint.op_Equality(a,c.Top)?a.Z=c.Top.Z:this.ZFillFunction(b.Bot,
652b.Top,c.Bot,c.Top,a))};d.Clipper.prototype.InsertLocalMinimaIntoAEL=function(a){for(var b,c={},e,f;this.PopLocalMinima(a,c);){e=c.v.LeftBound;f=c.v.RightBound;var g=null;null===e?(this.InsertEdgeIntoAEL(f,null),this.SetWindingCount(f),this.IsContributing(f)&&(g=this.AddOutPt(f,f.Bot))):(null===f?(this.InsertEdgeIntoAEL(e,null),this.SetWindingCount(e),this.IsContributing(e)&&(g=this.AddOutPt(e,e.Bot))):(this.InsertEdgeIntoAEL(e,null),this.InsertEdgeIntoAEL(f,e),this.SetWindingCount(e),f.WindCnt=e.WindCnt,
653f.WindCnt2=e.WindCnt2,this.IsContributing(e)&&(g=this.AddLocalMinPoly(e,f,e.Bot))),this.InsertScanbeam(e.Top.Y));null!==f&&(d.ClipperBase.IsHorizontal(f)?(null!==f.NextInLML&&this.InsertScanbeam(f.NextInLML.Top.Y),this.AddEdgeToSEL(f)):this.InsertScanbeam(f.Top.Y));if(null!==e&&null!==f){if(null!==g&&d.ClipperBase.IsHorizontal(f)&&0<this.m_GhostJoins.length&&0!==f.WindDelta){b=0;for(var h=this.m_GhostJoins.length;b<h;b++){var m=this.m_GhostJoins[b];this.HorzSegmentsOverlap(m.OutPt1.Pt.X,m.OffPt.X,
654f.Bot.X,f.Top.X)&&this.AddJoin(m.OutPt1,g,m.OffPt)}}0<=e.OutIdx&&null!==e.PrevInAEL&&e.PrevInAEL.Curr.X===e.Bot.X&&0<=e.PrevInAEL.OutIdx&&d.ClipperBase.SlopesEqual5(e.PrevInAEL.Curr,e.PrevInAEL.Top,e.Curr,e.Top,this.m_UseFullRange)&&0!==e.WindDelta&&0!==e.PrevInAEL.WindDelta&&(b=this.AddOutPt(e.PrevInAEL,e.Bot),this.AddJoin(g,b,e.Top));if(e.NextInAEL!==f&&(0<=f.OutIdx&&0<=f.PrevInAEL.OutIdx&&d.ClipperBase.SlopesEqual5(f.PrevInAEL.Curr,f.PrevInAEL.Top,f.Curr,f.Top,this.m_UseFullRange)&&0!==f.WindDelta&&
6550!==f.PrevInAEL.WindDelta&&(b=this.AddOutPt(f.PrevInAEL,f.Bot),this.AddJoin(g,b,f.Top)),g=e.NextInAEL,null!==g))for(;g!==f;)this.IntersectEdges(f,g,e.Curr),g=g.NextInAEL}}};
655d.Clipper.prototype.InsertEdgeIntoAEL=function(a,b){if(null===this.m_ActiveEdges)a.PrevInAEL=null,a.NextInAEL=null,this.m_ActiveEdges=a;else if(null===b&&this.E2InsertsBeforeE1(this.m_ActiveEdges,a))a.PrevInAEL=null,a.NextInAEL=this.m_ActiveEdges,this.m_ActiveEdges=this.m_ActiveEdges.PrevInAEL=a;else{null===b&&(b=this.m_ActiveEdges);
656for(;null!==b.NextInAEL&&!this.E2InsertsBeforeE1(b.NextInAEL,a);)b=b.NextInAEL;a.NextInAEL=b.NextInAEL;null!==b.NextInAEL&&(b.NextInAEL.PrevInAEL=a);a.PrevInAEL=b;b.NextInAEL=a}};d.Clipper.prototype.E2InsertsBeforeE1=function(a,b){return b.Curr.X===a.Curr.X?b.Top.Y>a.Top.Y?b.Top.X<d.Clipper.TopX(a,b.Top.Y):a.Top.X>d.Clipper.TopX(b,a.Top.Y):b.Curr.X<a.Curr.X};d.Clipper.prototype.IsEvenOddFillType=function(a){return a.PolyTyp===d.PolyType.ptSubject?this.m_SubjFillType===d.PolyFillType.pftEvenOdd:this.m_ClipFillType===
657d.PolyFillType.pftEvenOdd};d.Clipper.prototype.IsEvenOddAltFillType=function(a){return a.PolyTyp===d.PolyType.ptSubject?this.m_ClipFillType===d.PolyFillType.pftEvenOdd:this.m_SubjFillType===d.PolyFillType.pftEvenOdd};d.Clipper.prototype.IsContributing=function(a){if(a.PolyTyp===d.PolyType.ptSubject){var b=this.m_SubjFillType;var c=this.m_ClipFillType}else b=this.m_ClipFillType,c=this.m_SubjFillType;switch(b){case d.PolyFillType.pftEvenOdd:if(0===a.WindDelta&&1!==a.WindCnt)return!1;break;case d.PolyFillType.pftNonZero:if(1!==
658Math.abs(a.WindCnt))return!1;break;case d.PolyFillType.pftPositive:if(1!==a.WindCnt)return!1;break;default:if(-1!==a.WindCnt)return!1}switch(this.m_ClipType){case d.ClipType.ctIntersection:switch(c){case d.PolyFillType.pftEvenOdd:case d.PolyFillType.pftNonZero:return 0!==a.WindCnt2;case d.PolyFillType.pftPositive:return 0<a.WindCnt2;default:return 0>a.WindCnt2}case d.ClipType.ctUnion:switch(c){case d.PolyFillType.pftEvenOdd:case d.PolyFillType.pftNonZero:return 0===a.WindCnt2;case d.PolyFillType.pftPositive:return 0>=
659a.WindCnt2;default:return 0<=a.WindCnt2}case d.ClipType.ctDifference:if(a.PolyTyp===d.PolyType.ptSubject)switch(c){case d.PolyFillType.pftEvenOdd:case d.PolyFillType.pftNonZero:return 0===a.WindCnt2;case d.PolyFillType.pftPositive:return 0>=a.WindCnt2;default:return 0<=a.WindCnt2}else switch(c){case d.PolyFillType.pftEvenOdd:case d.PolyFillType.pftNonZero:return 0!==a.WindCnt2;case d.PolyFillType.pftPositive:return 0<a.WindCnt2;default:return 0>a.WindCnt2}case d.ClipType.ctXor:if(0===a.WindDelta)switch(c){case d.PolyFillType.pftEvenOdd:case d.PolyFillType.pftNonZero:return 0===
660a.WindCnt2;case d.PolyFillType.pftPositive:return 0>=a.WindCnt2;default:return 0<=a.WindCnt2}}return!0};d.Clipper.prototype.SetWindingCount=function(a){for(var b=a.PrevInAEL;null!==b&&(b.PolyTyp!==a.PolyTyp||0===b.WindDelta);)b=b.PrevInAEL;if(null===b)b=a.PolyTyp===d.PolyType.ptSubject?this.m_SubjFillType:this.m_ClipFillType,a.WindCnt=0===a.WindDelta?b===d.PolyFillType.pftNegative?-1:1:a.WindDelta,a.WindCnt2=0,b=this.m_ActiveEdges;else{if(0===a.WindDelta&&this.m_ClipType!==d.ClipType.ctUnion)a.WindCnt=
6611;else if(this.IsEvenOddFillType(a))if(0===a.WindDelta){for(var c=!0,e=b.PrevInAEL;null!==e;)e.PolyTyp===b.PolyTyp&&0!==e.WindDelta&&(c=!c),e=e.PrevInAEL;a.WindCnt=c?0:1}else a.WindCnt=a.WindDelta;else a.WindCnt=0>b.WindCnt*b.WindDelta?1<Math.abs(b.WindCnt)?0>b.WindDelta*a.WindDelta?b.WindCnt:b.WindCnt+a.WindDelta:0===a.WindDelta?1:a.WindDelta:0===a.WindDelta?0>b.WindCnt?b.WindCnt-1:b.WindCnt+1:0>b.WindDelta*a.WindDelta?b.WindCnt:b.WindCnt+a.WindDelta;a.WindCnt2=b.WindCnt2;b=b.NextInAEL}if(this.IsEvenOddAltFillType(a))for(;b!==
662a;)0!==b.WindDelta&&(a.WindCnt2=0===a.WindCnt2?1:0),b=b.NextInAEL;else for(;b!==a;)a.WindCnt2+=b.WindDelta,b=b.NextInAEL};d.Clipper.prototype.AddEdgeToSEL=function(a){null===this.m_SortedEdges?(this.m_SortedEdges=a,a.PrevInSEL=null,a.NextInSEL=null):(a.NextInSEL=this.m_SortedEdges,a.PrevInSEL=null,this.m_SortedEdges=this.m_SortedEdges.PrevInSEL=a)};d.Clipper.prototype.PopEdgeFromSEL=function(a){a.v=this.m_SortedEdges;if(null===a.v)return!1;var b=a.v;this.m_SortedEdges=a.v.NextInSEL;null!==this.m_SortedEdges&&
663(this.m_SortedEdges.PrevInSEL=null);b.NextInSEL=null;b.PrevInSEL=null;return!0};d.Clipper.prototype.CopyAELToSEL=function(){var a=this.m_ActiveEdges;for(this.m_SortedEdges=a;null!==a;)a.PrevInSEL=a.PrevInAEL,a=a.NextInSEL=a.NextInAEL};d.Clipper.prototype.SwapPositionsInSEL=function(a,b){if(null!==a.NextInSEL||null!==a.PrevInSEL)if(null!==b.NextInSEL||null!==b.PrevInSEL){if(a.NextInSEL===b){var c=b.NextInSEL;null!==c&&(c.PrevInSEL=a);var e=a.PrevInSEL;null!==e&&(e.NextInSEL=b);b.PrevInSEL=e;b.NextInSEL=
664a;a.PrevInSEL=b;a.NextInSEL=c}else b.NextInSEL===a?(c=a.NextInSEL,null!==c&&(c.PrevInSEL=b),e=b.PrevInSEL,null!==e&&(e.NextInSEL=a),a.PrevInSEL=e,a.NextInSEL=b,b.PrevInSEL=a,b.
664NextInSEL=c):(c=a.NextInSEL,e=a.PrevInSEL,a.NextInSEL=b.NextInSEL,null!==a.NextInSEL&&(a.NextInSEL.PrevInSEL=a),a.PrevInSEL=b.PrevInSEL,null!==a.PrevInSEL&&(a.PrevInSEL.NextInSEL=a),b.NextInSEL=c,null!==b.NextInSEL&&(b.NextInSEL.PrevInSEL=b),b.PrevInSEL=e,null!==b.PrevInSEL&&(b.PrevInSEL.NextInSEL=b));null===a.PrevInSEL?this.m_SortedEdges=
665a:null===b.PrevInSEL&&(this.m_SortedEdges=b)}};d.Clipper.prototype.AddLocalMaxPoly=function(a,b,c){this.AddOutPt(a,c);0===b.WindDelta&&this.AddOutPt(b,c);a.OutIdx===b.OutIdx?(a.OutIdx=-1,b.OutIdx=-1):a.OutIdx<b.OutIdx?this.AppendPolygon(a,b):this.AppendPolygon(b,a)};d.Clipper.prototype.AddLocalMinPoly=function(a,b,c){if(d.ClipperBase.IsHorizontal(b)||a.Dx>b.Dx){var e=this.AddOutPt(a,c);b.OutIdx=a.OutIdx;a.Side=d.EdgeSide.esLeft;b.Side=d.EdgeSide.esRight;var f=a;a=f.PrevInAEL===b?b.PrevInAEL:f.PrevInAEL}else e=
666this.AddOutPt(b,c),a.OutIdx=b.OutIdx,a.Side=d.EdgeSide.esRight,b.Side=d.EdgeSide.esLeft,f=b,a=f.PrevInAEL===a?a.PrevInAEL:f.PrevInAEL;if(null!==a&&0<=a.OutIdx&&a.Top.Y<c.Y&&f.Top.Y<c.Y){b=d.Clipper.TopX(a,c.Y);var g=d.Clipper.TopX(f,c.Y);b===g&&0!==f.WindDelta&&0!==a.WindDelta&&d.ClipperBase.SlopesEqual5(new d.IntPoint2(b,c.Y),a.Top,new d.IntPoint2(g,c.Y),f.Top,this.m_UseFullRange)&&(c=this.AddOutPt(a,c),this.AddJoin(e,c,f.Top))}return e};d.Clipper.prototype.AddOutPt=function(a,b){if(0>a.OutIdx){var c=
667this.CreateOutRec();c.IsOpen=0===a.WindDelta;var e=new d.OutPt;c.Pts=e;e.Idx=c.Idx;e.Pt.X=b.X;e.Pt.Y=b.Y;d.use_xyz&&(e.Pt.Z=b.Z);e.Next=e;e.Prev=e;c.IsOpen||this.SetHoleState(a,c);a.OutIdx=c.Idx}else{c=this.m_PolyOuts[a.OutIdx];var f=c.Pts,g=a.Side===d.EdgeSide.esLeft;if(g&&d.IntPoint.op_Equality(b,f.Pt))return f;if(!g&&d.IntPoint.op_Equality(b,f.Prev.Pt))return f.Prev;e=new d.OutPt;e.Idx=c.Idx;e.Pt.X=b.X;e.Pt.Y=b.Y;d.use_xyz&&(e.Pt.Z=b.Z);e.Next=f;e.Prev=f.Prev;e.Prev.Next=e;f.Prev=e;g&&(c.Pts=e)}return e};
668d.Clipper.prototype.GetLastOutPt=function(a){var b=this.m_PolyOuts[a.OutIdx];return a.Side===d.EdgeSide.esLeft?b.Pts:b.Pts.Prev};d.Clipper.prototype.SwapPoints=function(a,b){var c=new d.IntPoint1(a.Value);a.Value.X=b.Value.X;a.Value.Y=b.Value.Y;d.use_xyz&&(a.Value.Z=b.Value.Z);b.Value.X=c.X;b.Value.Y=c.Y;d.use_xyz&&(b.Value.Z=c.Z)};d.Clipper.prototype.HorzSegmentsOverlap=function(a,b,c,e){if(a>b){var d=a;a=b;b=d}c>e&&(d=c,c=e,e=d);return a<e&&c<b};d.Clipper.prototype.SetHoleState=function(a,b){for(var c=
669a.PrevInAEL,e=null;null!==c;)0<=c.OutIdx&&0!==c.WindDelta&&(null===e?e=c:e.OutIdx===c.OutIdx&&(e=null)),c=c.PrevInAEL;null===e?(b.FirstLeft=null,b.IsHole=!1):(b.FirstLeft=this.m_PolyOuts[e.OutIdx],b.IsHole=!b.FirstLeft.IsHole)};d.Clipper.prototype.GetDx=function(a,b){return a.Y===b.Y?d.ClipperBase.horizontal:(b.X-a.X)/(b.Y-a.Y)};d.Clipper.prototype.FirstIsBottomPt=function(a,b){for(var c=a.Prev;d.IntPoint.op_Equality(c.Pt,a.Pt)&&c!==a;)c=c.Prev;var e=Math.abs(this.GetDx(a.Pt,c.Pt));for(c=a.Next;d.IntPoint.op_Equality(c.Pt,
670a.Pt)&&c!==a;)c=c.Next;var f=Math.abs(this.GetDx(a.Pt,c.Pt));for(c=b.Prev;d.IntPoint.op_Equality(c.Pt,b.Pt)&&c!==b;)c=c.Prev;var g=Math.abs(this.GetDx(b.Pt,c.Pt));for(c=b.Next;d.IntPoint.op_Equality(c.Pt,b.Pt)&&c!==b;)c=c.Next;c=Math.abs(this.GetDx(b.Pt,c.Pt));return Math.max(e,f)===Math.max(g,c)&&Math.min(e,f)===Math.min(g,c)?0<this.Area(a):e>=g&&e>=c||f>=g&&f>=c};d.Clipper.prototype.GetBottomPt=function(a){for(var b=null,c=a.Next;c!==a;)c.Pt.Y>a.Pt.Y?(a=c,b=null):c.Pt.Y===a.Pt.Y&&c.Pt.X<=a.Pt.X&&
671(c.Pt.X<a.Pt.X?(b=null,a=c):c.Next!==a&&c.Prev!==a&&(b=c)),c=c.Next;if(null!==b)for(;b!==c;)for(this.FirstIsBottomPt(c,b)||(a=b),b=b.Next;d.IntPoint.op_Inequality(b.Pt,a.Pt);)b=b.Next;return a};d.Clipper.prototype.GetLowermostRec=function(a,b){null===a.BottomPt&&(a.BottomPt=this.GetBottomPt(a.Pts));null===b.BottomPt&&(b.BottomPt=this.GetBottomPt(b.Pts));var c=a.BottomPt,e=b.BottomPt;return c.Pt.Y>e.Pt.Y?a:c.Pt.Y<e.Pt.Y?b:c.Pt.X<e.Pt.X?a:c.Pt.X>e.Pt.X?b:c.Next===c?b:e.Next===e?a:this.FirstIsBottomPt(c,
672e)?a:b};d.Clipper.prototype.OutRec1RightOfOutRec2=function(a,b){do if(a=a.FirstLeft,a===b)return!0;while(null!==a);return!1};d.Clipper.prototype.GetOutRec=function(a){for(a=this.m_PolyOuts[a];a!==this.m_PolyOuts[a.Idx];)a=this.m_PolyOuts[a.Idx];return a};d.Clipper.prototype.AppendPolygon=function(a,b){var c=this.m_PolyOuts[a.OutIdx],e=this.m_PolyOuts[b.OutIdx];var f=this.OutRec1RightOfOutRec2(c,e)?e:this.OutRec1RightOfOutRec2(e,c)?c:this.GetLowermostRec(c,e);var g=c.Pts,h=g.Prev,m=e.Pts,k=m.Prev;
673a.Side===d.EdgeSide.esLeft?b.Side===d.EdgeSide.esLeft?(this.ReversePolyPtLinks(m),m.Next=g,g.Prev=m,h.Next=k,k.Prev=h,c.Pts=k):(k.Next=g,g.Prev=k,m.Prev=h,h.Next=m,c.Pts=m):b.Side===d.EdgeSide.esRight?(this.ReversePolyPtLinks(m),h.Next=k,k.Prev=h,m.Next=g,g.Prev=m):(h.Next=m,m.Prev=h,g.Prev=k,k.Next=g);c.BottomPt=null;f===e&&(e.FirstLeft!==c&&(c.FirstLeft=e.FirstLeft),c.IsHole=e.IsHole);e.Pts=null;e.BottomPt=null;e.FirstLeft=c;f=a.OutIdx;g=b.OutIdx;a.OutIdx=-1;b.OutIdx=-1;for(h=this.m_ActiveEdges;null!==
674h;){if(h.OutIdx===g){h.OutIdx=f;h.Side=a.Side;break}h=h.NextInAEL}e.Idx=c.Idx};
674d.Clipper.prototype.ReversePolyPtLinks=function(a){if(null!==a){var b=a;do{var c=b.Next;b.Next=b.Prev;b=b.Prev=c}while(b!==a)}};d.Clipper.SwapSides=function(a,b){var c=a.Side;a.Side=b.Side;b.Side=c};d.Clipper.SwapPolyIndexes=function(a,b){var c=a.OutIdx;a.OutIdx=b.OutIdx;b.OutIdx=c};d.Clipper.prototype.IntersectEdges=function(a,b,c){var e=0<=a.OutIdx,f=0<=b.OutIdx;d.use_xyz&&this.SetZ(c,a,b);if(!d.use_lines||0!==a.WindDelta&&
6750!==b.WindDelta){if(a.PolyTyp===b.PolyTyp)if(this.IsEvenOddFillType(a)){var g=a.WindCnt;a.WindCnt=b.WindCnt;b.WindCnt=g}else a.WindCnt=0===a.WindCnt+b.WindDelta?-a.WindCnt:a.WindCnt+b.WindDelta,b.WindCnt=0===b.WindCnt-a.WindDelta?-b.WindCnt:b.WindCnt-a.WindDelta;else this.IsEvenOddFillType(b)?a.WindCnt2=0===a.WindCnt2?1:0:a.WindCnt2+=b.WindDelta,this.IsEvenOddFillType(a)?b.WindCnt2=0===b.WindCnt2?1:0:b.WindCnt2-=a.WindDelta;if(a.PolyTyp===d.PolyType.ptSubject){var h=this.m_SubjFillType;var k=this.m_ClipFillType}else h=
676this.m_ClipFillType,k=this.m_SubjFillType;if(b.PolyTyp===d.PolyType.ptSubject){var l=this.m_SubjFillType;g=this.m_ClipFillType}else l=this.m_ClipFillType,g=this.m_SubjFillType;switch(h){case d.PolyFillType.pftPositive:h=a.WindCnt;break;case d.PolyFillType.pftNegative:h=-a.WindCnt;break;default:h=Math.abs(a.WindCnt)}switch(l){case d.PolyFillType.pftPositive:l=b.WindCnt;break;case d.PolyFillType.pftNegative:l=-b.WindCnt;break;default:l=Math.abs(b.WindCnt)}if(e&&f)0!==h&&1!==h||0!==l&&1!==l||a.PolyTyp!==
677b.PolyTyp&&this.m_ClipType!==d.ClipType.ctXor?this.AddLocalMaxPoly(a,b,c):(this.AddOutPt(a,c),this.AddOutPt(b,c),d.Clipper.SwapSides(a,b),d.Clipper.SwapPolyIndexes(a,b));else if(e){if(0===l||1===l)this.AddOutPt(a,c),d.Clipper.SwapSides(a,b),d.Clipper.SwapPolyIndexes(a,b)}else if(f){if(0===h||1===h)this.AddOutPt(b,c),d.Clipper.SwapSides(a,b),d.Clipper.SwapPolyIndexes(a,b)}else if(!(0!==h&&1!==h||0!==l&&1!==l)){switch(k){case d.PolyFillType.pftPositive:e=a.WindCnt2;break;case d.PolyFillType.pftNegative:e=
678-a.WindCnt2;break;default:e=Math.abs(a.WindCnt2)}switch(g){case d.PolyFillType.pftPositive:f=b.WindCnt2;break;case d.PolyFillType.pftNegative:f=-b.WindCnt2;break;default:f=Math.abs(b.WindCnt2)}if(a.PolyTyp!==b.PolyTyp)this.AddLocalMinPoly(a,b,c);else if(1===h&&1===l)switch(this.m_ClipType){case d.ClipType.ctIntersection:0<e&&0<f&&this.AddLocalMinPoly(a,b,c);break;case d.ClipType.ctUnion:0>=e&&0>=f&&this.AddLocalMinPoly(a,b,c);break;case d.ClipType.ctDifference:(a.PolyTyp===d.PolyType.ptClip&&0<e&&
6790<f||a.PolyTyp===d.PolyType.ptSubject&&0>=e&&0>=f)&&this.AddLocalMinPoly(a,b,c);break;case d.ClipType.ctXor:this.AddLocalMinPoly(a,b,c)}else d.Clipper.SwapSides(a,b)}}else if(0!==a.WindDelta||0!==b.WindDelta)a.PolyTyp===b.PolyTyp&&a.WindDelta!==b.WindDelta&&this.m_ClipType===d.ClipType.ctUnion?0===a.WindDelta?f&&(this.AddOutPt(a,c),e&&(a.OutIdx=-1)):e&&(this.AddOutPt(b,c),f&&(b.OutIdx=-1)):a.PolyTyp!==b.PolyTyp&&(0!==a.WindDelta||1!==Math.abs(b.WindCnt)||this.m_ClipType===d.ClipType.ctUnion&&0!==
680b.WindCnt2?0!==b.WindDelta||1!==Math.abs(a.WindCnt)||this.m_ClipType===d.ClipType.ctUnion&&0!==a.WindCnt2||(this.AddOutPt(b,c),f&&(b.OutIdx=-1)):(this.AddOutPt(a,c),e&&(a.OutIdx=-1)))};d.Clipper.prototype.DeleteFromSEL=function(a){var b=a.PrevInSEL,c=a.NextInSEL;if(null!==b||null!==c||a===this.m_SortedEdges)null!==b?b.NextInSEL=c:this.m_SortedEdges=c,null!==c&&(c.PrevInSEL=b),a.NextInSEL=null,a.PrevInSEL=null};d.Clipper.prototype.ProcessHorizontals=function(){for(var a={};this.PopEdgeFromSEL(a);)this.ProcessHorizontal(a.v)};
681d.Clipper.prototype.GetHorzDirection=function(a,b){a.Bot.X<a.Top.X?(b.Left=a.Bot.X,b.Right=a.Top.X,b.Dir=d.Direction.dLeftToRight):(b.Left=a.Top.X,b.Right=a.Bot.X,b.Dir=d.Direction.dRightToLeft)};d.Clipper.prototype.ProcessHorizontal=function(a){var b,c={Dir:null,Left:null,Right:null};this.GetHorzDirection(a,c);var e=c.Dir,f=c.Left;c=c.Right;for(var g=0===a.WindDelta,h=a,k=null;null!==h.NextInLML&&d.ClipperBase.IsHorizontal(h.NextInLML);)h=h.NextInLML;null===h.NextInLML&&(k=this.GetMaximaPair(h));
682var l=this.m_Maxima;if(null!==l)if(e===d.Direction.dLeftToRight){for(;null!==l&&l.X<=a.Bot.X;)l=l.Next;null!==l&&l.X>=h.Top.X&&(l=null)}else{for(;null!==l.Next&&l.Next.X<a.Bot.X;)l=l.Next;l.X<=h.Top.X&&(l=null)}for(var n=null;;){for(var r=a===h,p=this.GetNextInAEL(a,e);null!==p;){if(null!==l)if(e===d.Direction.dLeftToRight)for(;null!==l&&l.X<p.Curr.X;)0<=a.OutIdx&&!g&&this.AddOutPt(a,new d.IntPoint2(l.X,a.Bot.Y)),l=l.Next;else for(;null!==l&&l.X>p.Curr.X;)0<=a.OutIdx&&!g&&this.AddOutPt(a,new d.IntPoint2(l.X,
683a.Bot.Y)),l=l.Prev;if(e===d.Direction.dLeftToRight&&p.Curr.X>c||e===d.Direction.dRightToLeft&&p.Curr.X<f)break;
683if(p.Curr.X===a.Top.X&&null!==a.NextInLML&&p.Dx<a.NextInLML.Dx)break;if(0<=a.OutIdx&&!g){d.use_xyz&&(e===d.Direction.dLeftToRight?this.SetZ(p.Curr,a,p):this.SetZ(p.Curr,p,a));n=this.AddOutPt(a,p.Curr);for(b=this.m_SortedEdges;null!==b;){if(0<=b.OutIdx&&this.HorzSegmentsOverlap(a.Bot.X,a.Top.X,b.Bot.X,b.Top.X)){var t=this.GetLastOutPt(b);this.AddJoin(t,n,b.Top)}b=b.NextInSEL}this.AddGhostJoin(n,
684a.Bot)}if(p===k&&r){0<=a.OutIdx&&this.AddLocalMaxPoly(a,k,a.Top);this.DeleteFromAEL(a);this.DeleteFromAEL(k);return}e===d.Direction.dLeftToRight?(t=new d.IntPoint2(p.Curr.X,a.Curr.Y),this.IntersectEdges(a,p,t)):(t=new d.IntPoint2(p.Curr.X,a.Curr.Y),this.IntersectEdges(p,a,t));t=this.GetNextInAEL(p,e);this.SwapPositionsInAEL(a,p);p=t}if(null===a.NextInLML||!d.ClipperBase.IsHorizontal(a.NextInLML))break;a=this.UpdateEdgeIntoAEL(a);0<=a.OutIdx&&this.AddOutPt(a,a.Bot);c={Dir:e,Left:f,Right:c};this.GetHorzDirection(a,
685c);e=c.Dir;f=c.Left;c=c.Right}if(0<=a.OutIdx&&null===n){n=this.GetLastOutPt(a);for(b=this.m_SortedEdges;null!==b;)0<=b.OutIdx&&this.HorzSegmentsOverlap(a.Bot.X,a.Top.X,b.Bot.X,b.Top.X)&&(t=this.GetLastOutPt(b),this.AddJoin(t,n,b.Top
685)),b=b.NextInSEL;this.AddGhostJoin(n,a.Top)}null!==a.NextInLML?0<=a.OutIdx?(n=this.AddOutPt(a,a.Top),a=this.UpdateEdgeIntoAEL(a),0!==a.WindDelta&&(e=a.PrevInAEL,t=a.NextInAEL,null!==e&&e.Curr.X===a.Bot.X&&e.Curr.Y===a.Bot.Y&&0===e.WindDelta&&0<=e.OutIdx&&e.Curr.Y>e.Top.Y&&
686d.ClipperBase.SlopesEqual3(a,e,this.m_UseFullRange)?(t=this.AddOutPt(e,a.Bot),this.AddJoin(n,t,a.Top)):null!==t&&t.Curr.X===a.Bot.X&&t.Curr.Y===a.Bot.Y&&0!==t.WindDelta&&0<=t.OutIdx&&t.Curr.Y>t.Top.Y&&d.ClipperBase.SlopesEqual3(a,t,this.m_UseFullRange)&&(t=this.AddOutPt(t,a.Bot),this.AddJoin(n,t,a.Top)))):this.UpdateEdgeIntoAEL(a):(0<=a.OutIdx&&this.AddOutPt(a,a.Top),this.DeleteFromAEL(a))};d.Clipper.prototype.GetNextInAEL=function(a,b){return b===d.Direction.dLeftToRight?a.NextInAEL:a.PrevInAEL};
687d.Clipper.prototype.IsMinima=function(a){return null!==a&&a.Prev.NextInLML!==a&&a.Next.NextInLML!==a};d.Clipper.prototype.IsMaxima=function(a,b){return null!==a&&a.Top.Y===b&&null===a.NextInLML};d.Clipper.prototype.IsIntermediate=function(a,b){return a.Top.Y===b&&null!==a.NextInLML};d.Clipper.prototype.GetMaximaPair=function(a){return d.IntPoint.op_Equality(a.Next.Top,a.Top)&&null===a.Next.NextInLML?a.Next:d.IntPoint.op_Equality(a.Prev.Top,a.Top)&&null===a.Prev.NextInLML?a.Prev:null};d.Clipper.prototype.GetMaximaPairEx=
688function(a){a=this.GetMaximaPair(a);return null===a||a.OutIdx===d.ClipperBase.Skip||a.NextInAEL===a.PrevInAEL&&!d.ClipperBase.IsHorizontal(a)?null:a};d.Clipper.prototype.ProcessIntersections=function(a){if(null===this.m_ActiveEdges)return!0;try{this.BuildIntersectList(a);if(0===this.m_IntersectList.length)return!0;if(1===this.m_IntersectList.length||this.FixupIntersectionOrder())this.ProcessIntersectList();else return!1}catch(b){this.m_SortedEdges=null,this.m_IntersectList.length=0,d.Error("ProcessIntersections error")}this.m_SortedEdges=
689null;return!0};d.Clipper.prototype.BuildIntersectList=function(a){if(null!==this.m_ActiveEdges){var b=this.m_ActiveEdges;for(this.m_SortedEdges=b;null!==b;)b.PrevInSEL=b.PrevInAEL,b.NextInSEL=b.NextInAEL,b.Curr.X=d.Clipper.TopX(b,a),b=b.NextInAEL;for(var c=!0;c&&null!==this.m_SortedEdges;){c=!1;for(b=this.m_SortedEdges;null!==b.NextInSEL;){var e=b.NextInSEL,f=new d.IntPoint0;b.Curr.X>e.Curr.X?(this.IntersectPoint(b,e,f),f.Y<a&&(f=new d.IntPoint2(d.Clipper.TopX(b,a),a)),c=new d.IntersectNode,c.Edge1=
690b,c.Edge2=e,c.Pt.X=f.X,c.Pt.Y=f.Y,d.use_xyz&&(c.Pt.Z=f.Z),this.m_IntersectList.push(c),this.SwapPositionsInSEL(b,e),c=!0):b=e}if(null!==b.PrevInSEL)b.PrevInSEL.NextInSEL=null;else break}this.m_SortedEdges=null}};d.Clipper.prototype.EdgesAdjacent=function(a){return a.Edge1.NextInSEL===a.Edge2||a.Edge1.PrevInSEL===a.Edge2};d.Clipper.IntersectNodeSort=function(a,b){return b.Pt.Y-a.Pt.Y};d.Clipper.prototype.FixupIntersectionOrder=function(){this.m_IntersectList.sort(this.m_IntersectNodeComparer);this.CopyAELToSEL();
691for(var a=this.m_IntersectList.length,b=0;b<a;b++){if(!this.EdgesAdjacent(this.m_IntersectList[b])){for(var c=b+1;c<a&&!this.EdgesAdjacent(this.m_IntersectList[c]);)c++;if(c===a)return!1;var e=this.m_IntersectList[b];this.m_IntersectList[b]=this.m_IntersectList[c];this.m_IntersectList[c]=e}this.SwapPositionsInSEL(this.m_IntersectList[b].Edge1,this.m_IntersectList[b].Edge2)}return!0};d.Clipper.prototype.ProcessIntersectList=function(){for(var a=0,b=this.m_IntersectList.length;a<b;a++){var c=this.m_IntersectList[a];
692this.IntersectEdges(c.Edge1,c.Edge2,c.Pt);this.SwapPositionsInAEL(c.Edge1,c.Edge2)}this.m_IntersectList.length=0};I=function(a){return 0>a?Math.ceil(a-.5):Math.round(a)};J=function(a){return 0>a?Math.ceil(a-.5):Math.floor(a+.5)};K=function(a){return 0>a?-Math.round(Math.abs(a)):Math.round(a)};L=function(a){if(0>a)return a-=.5,-2147483648>a?Math.ceil(a):a|0;a+=.5;return 2147483647<a?Math.floor(a):a|0};d.Clipper.Round=u?I:G?K:Q?L:J;d.Clipper.TopX=function(a,b){return b===a.Top.Y?a.Top.X:a.Bot.X+d.Clipper.Round(a.Dx*
693(b-a.Bot.Y))};d.Clipper.prototype.IntersectPoint=function(a,b,c){c.X=0;c.Y=0;if(a.Dx===b.Dx)c.Y=a.Curr.Y,c.X=d.Clipper.TopX(a,c.Y);else{if(0===a.Delta.X)if(c.X=a.Bot.X,d.ClipperBase.IsHorizontal(b))c.Y=b.Bot.Y;else{var e=b.Bot.Y-b.Bot.X/b.Dx;c.Y=d.Clipper.Round(c.X/b.Dx+e)}
693else if(0===b.Delta.X)if(c.X=b.Bot.X,d.ClipperBase.IsHorizontal(a))c.Y=a.Bot.Y;else{var f=a.Bot.Y-a.Bot.X/a.Dx;c.Y=d.Clipper.Round(c.X/a.Dx+f)}else{f=a.Bot.X-a.Bot.Y*a.Dx;e=b.Bot.X-b.Bot.Y*b.Dx;var g=(e-f)/(a.Dx-b.Dx);c.Y=d.Clipper.Round(g);
694c.X=Math.abs(a.Dx)<Math.abs(b.Dx)?d.Clipper.Round(a.Dx*g+f):d.Clipper.Round(b.Dx*g+e)}if(c.Y<a.Top.Y||c.Y<b.Top.Y){if(a.Top.Y>b.Top.Y)return c.Y=a.Top.Y,c.X=d.Clipper.TopX(b,a.Top.Y),c.X<a.Top.X;c.Y=b.Top.Y;c.X=Math.abs(a.Dx)<Math.abs(b.Dx)?d.Clipper.TopX(a,c.Y):d.Clipper.TopX(b,c.Y)}c.Y>a.Curr.Y&&(c.Y=a.Curr.Y,c.X=Math.abs(a.Dx)>Math.abs(b.Dx)?d.Clipper.TopX(b,c.Y):d.Clipper.TopX(a,c.Y))}};d.Clipper.prototype.ProcessEdgesAtTopOfScanbeam=function(a){for(var b,c,e=this.m_ActiveEdges;null!==e;){if(c=
695this.IsMaxima(e,a))c=this.GetMaximaPairEx(e),c=null===c||!d.ClipperBase.IsHorizontal(c);if(c)this.StrictlySimple&&this.InsertMaxima(e.Top.X),b=e.PrevInAEL,this.DoMaxima(e),e=null===b?this.m_ActiveEdges:b.NextInAEL;else{this.IsIntermediate(e,a)&&d.ClipperBase.IsHorizontal(e.NextInLML)?(e=this.UpdateEdgeIntoAEL(e),0<=e.OutIdx&&this.AddOutPt(e,e.Bot),this.AddEdgeToSEL(e)):(e.Curr.X=d.Clipper.TopX(e,a),e.Curr.Y=a);d.use_xyz&&(e.Curr.Z=e.Top.Y===a?e.Top.Z:e.Bot.Y===a?e.Bot.Z:0);if(this.StrictlySimple&&
696(b=e.PrevInAEL,0<=e.OutIdx&&0!==e.WindDelta&&null!==b&&0<=b.OutIdx&&b.Curr.X===e.Curr.X&&0!==b.WindDelta)){var f=new d.IntPoint1(e.Curr);d.use_xyz&&this.SetZ(f,b,e);c=this.AddOutPt(b,f);b=this.AddOutPt(e,f);this.AddJoin(c,b,f)}e=e.NextInAEL}}this.ProcessHorizontals();this.m_Maxima=null;for(e=this.m_ActiveEdges;null!==e;)this.IsIntermediate(e,a)&&(c=null,0<=e.OutIdx&&(c=this.AddOutPt(e,e.Top)),e=this.UpdateEdgeIntoAEL(e),b=e.PrevInAEL,f=e.NextInAEL,null!==b&&b.Curr.X===e.Bot.X&&b.Curr.Y===e.Bot.Y&&
697null!==c&&0<=b.OutIdx&&b.Curr.Y===b.Top.Y&&d.ClipperBase.SlopesEqual5(e.Curr,e.Top,b.Curr,b.Top,this.m_UseFullRange)&&0!==e.WindDelta&&0!==b.WindDelta?(b=this.AddOutPt(ePrev2,e.Bot),this.AddJoin(c,b,e.Top)):null!==f&&f.Curr.X===e.Bot.X&&f.Curr.Y===e.Bot.Y&&null!==c&&0<=f.OutIdx&&f.Curr.Y===f.Top.Y&&d.ClipperBase.SlopesEqual5(e.Curr,e.Top,f.Curr,f.Top,this.m_UseFullRange)&&0!==e.WindDelta&&0!==f.WindDelta&&(b=this.AddOutPt(f,e.Bot),this.AddJoin(c,b,e.Top))),e=e.NextInAEL};d.Clipper.prototype.DoMaxima=
698function(a){var b=this.GetMaximaPairEx(a);if(null===b)0<=a.OutIdx&&this.AddOutPt(a,a.Top),this.DeleteFromAEL(a);else{for(var c=a.NextInAEL;null!==c&&c!==b;)this.IntersectEdges(a,c,a.Top),this.SwapPositionsInAEL(a,c),c=a.NextInAEL;-1===a.OutIdx&&-1===b.OutIdx?(this.DeleteFromAEL(a),this.DeleteFromAEL(b)):0<=a.OutIdx&&0<=b.OutIdx?(0<=a.OutIdx&&this.AddLocalMaxPoly(a,b,a.Top),this.DeleteFromAEL(a),this.DeleteFromAEL(b)):d.use_lines&&0===a.WindDelta?(0<=a.OutIdx&&(this.AddOutPt(a,a.Top),a.OutIdx=d.ClipperBase.Unassigned),
699this.DeleteFromAEL(a),0<=b.OutIdx&&(this.AddOutPt(b,a.Top),b.OutIdx=d.ClipperBase.Unassigned),this.DeleteFromAEL(b)):d.Error("DoMaxima error")}};d.Clipper.ReversePaths=function(a){for(var b=0,c=a.length;b<c;b++)a[b].reverse()};d.Clipper.Orientation=function(a){return 0<=d.Clipper.Area(a)};d.Clipper.prototype.PointCount=function(a){if(null===a)return 0;var b=0,c=a;do b++,c=c.Next;while(c!==a);return b};d.Clipper.prototype.BuildResult=function(a){d.Clear(a);for(var b=0,c=this.m_PolyOuts.length;b<c;b++){var e=
700this.m_PolyOuts[b];if(null!==e.Pts){e=e.Pts.Prev;var f=this.PointCount(e);if(!(2>f)){for(var g=Array(f),h=0;h<f;h++)g[h]=e.Pt,e=e.Prev;a.push(g)}}}};d.Clipper.prototype.BuildResult2=function(a){a.Clear();for(var b=0,c=this.m_PolyOuts.length;b<c;b++){var e=this.m_PolyOuts[b];var f=this.PointCount(e.Pts);if(!(e.IsOpen&&2>f||!e.IsOpen&&3>f)){this.FixHoleLinkage(e);var g=new d.PolyNode;a.m_AllPolys.push(g);e.PolyNode=g;g.m_polygon.length=f;e=e.Pts.Prev;for(var h=0;h<f;h++)g.m_polygon[h]=e.Pt,e=e.Prev}}b=
7010;for(c=this.m_PolyOuts.length;b<c;b++)e=this.m_PolyOuts[b],null!==e.PolyNode&&(e.IsOpen?(e.PolyNode.IsOpen=!0,a.AddChild(e.PolyNode)):null!==e.FirstLeft&&null!==e.FirstLeft.PolyNode?e.FirstLeft.PolyNode.AddChild(e.PolyNode):a.AddChild(e.PolyNode))};d.Clipper.prototype.FixupOutPolyline=function(a){for(var b=a.Pts,c=b.Prev;b!==c;)if(b=b.Next,d.IntPoint.op_Equality(b.Pt,b.Prev.Pt)){b===c&&(c=b.Prev);var e=b.Prev;e.Next=b.Next;b=b.Next.Prev=e}
701b===b.Prev&&(a.Pts=null)};d.Clipper.prototype.FixupOutPolygon=
702function(a){var b=null;a.BottomPt=null;for(var c=a.Pts,e=this.PreserveCollinear||this.StrictlySimple;;){if(c.Prev===c||c.Prev===c.Next){a.Pts=null;return}if(d.IntPoint.op_Equality(c.Pt,c.Next.Pt)||d.IntPoint.op_Equality(c.Pt,c.Prev.Pt)||d.ClipperBase.SlopesEqual4(c.Prev.Pt,c.Pt,c.Next.Pt,this.m_UseFullRange)&&(!e||!this.Pt2IsBetweenPt1AndPt3(c.Prev.Pt,c.Pt,c.Next.Pt)))b=null,c.Prev.Next=c.Next,c=c.Next.Prev=c.Prev;else if(c===b)break;else null===b&&(b=c),c=c.Next}a.Pts=c};d.Clipper.prototype.DupOutPt=
703function(a,b){var c=new d.OutPt;c.Pt.X=a.Pt.X;c.Pt.Y=a.Pt.Y;d.use_xyz&&(c.Pt.Z=a.Pt.Z);c.Idx=a.Idx;b?(c.Next=a.Next,c.Prev=a,a.Next.Prev=c,a.Next=c):(c.Prev=a.Prev,c.Next=a,a.Prev.Next=c,a.Prev=c);return c};d.Clipper.prototype.GetOverlap=function(a,b,c,e,d){a<b?c<e?(d.Left=Math.max(a,c),d.Right=Math.min(b,e)):(d.Left=Math.max(a,e),d.Right=Math.min(b,c)):c<e?(d.Left=Math.max(b,c),d.Right=Math.min(a,e)):(d.Left=Math.max(b,e),d.Right=Math.min(a,c));return d.Left<d.Right};d.Clipper.prototype.JoinHorz=
704function(a,b,c,e,f,g){var h=a.Pt.X>b.Pt.X?d.Direction.dRightToLeft:d.Direction.dLeftToRight;e=c.Pt.X>e.Pt.X?d.Direction.dRightToLeft:d.Direction.dLeftToRight;if(h===e)return!1;if(h===d.Direction.dLeftToRight){for(;a.Next.Pt.X<=f.X&&a.Next.Pt.X>=a.Pt.X&&a.Next.Pt.Y===f.Y;)a=a.Next;g&&a.Pt.X!==f.X&&(a=a.Next);b=this.DupOutPt(a,!g);d.IntPoint.op_Inequality(b.Pt,f)&&(a=b,a.Pt.X=f.X,a.Pt.Y=f.Y,d.use_xyz&&(a.Pt.Z=f.Z),b=this.DupOutPt(a,!g))}else{for(;a.Next.Pt.X>=f.X&&a.Next.Pt.X<=a.Pt.X&&a.Next.Pt.Y===
705f.Y;)a=a.Next;g||a.Pt.X===f.X||(a=a.Next);b=this.DupOutPt(a,g);d.IntPoint.op_Inequality(b.Pt,f)&&(a=b,a.Pt.X=f.X,a.Pt.Y=f.Y,d.use_xyz&&(a.Pt.Z=f.Z),b=this.DupOutPt(a,g))}if(e===d.Direction.dLeftToRight){for(;c.Next.Pt.X<=f.X&&c.Next.Pt.X>=c.Pt.X&&c.Next.Pt.Y===f.Y;)c=c.Next;g&&c.Pt.X!==f.X&&(c=c.Next);e=this.DupOutPt(c,!g);d.IntPoint.op_Inequality(e.Pt,f)&&(c=e,c.Pt.X=f.X,c.Pt.Y=f.Y,d.use_xyz&&(c.Pt.Z=f.Z),e=this.DupOutPt(c,!g))}else{for(;c.Next.Pt.X>=f.X&&c.Next.Pt.X<=c.Pt.X&&c.Next.Pt.Y===f.Y;)c=
706c.Next;g||c.Pt.X===f.X||(c=c.Next);e=this.DupOutPt(c,g);d.IntPoint.op_Inequality(e.Pt,f)&&(c=e,c.Pt.X=f.X,c.Pt.Y=f.Y,d.use_xyz&&(c.Pt.Z=f.Z),e=this.DupOutPt(c,g))}h===d.Direction.dLeftToRight===g?(a.Prev=c,c.Next=a,b.Next=e,e.Prev=b):(a.Next=c,c.Prev=a,b.Prev=e,e.Next=b);return!0};d.Clipper.prototype.JoinPoints=function(a,b,c){var e=a.OutPt1,f;new d.OutPt;var g=a.OutPt2,h;new d.OutPt;if((h=a.OutPt1.Pt.Y===a.OffPt.Y)&&d.IntPoint.op_Equality(a.OffPt,a.OutPt1.Pt)&&d.IntPoint.op_Equality(a.OffPt,a.OutPt2.Pt)){if(b!==
707c)return!1;for(f=a.OutPt1.Next;f!==e&&d.IntPoint.op_Equality(f.Pt,a.OffPt);)f=f.Next;f=f.Pt.Y>a.OffPt.Y;for(h=a.OutPt2.Next;h!==g&&d.IntPoint.op_Equality(h.Pt,a.OffPt);)h=h.Next;if(f===h.Pt.Y>a.OffPt.Y)return!1;f?(f=this.DupOutPt(e,!1),h=this.DupOutPt(g,!0),e.Prev=g,g.Next=e,f.Next=h,h.Prev=f):(f=this.DupOutPt(e,!0),h=this.DupOutPt(g,!1),e.Next=g,g.Prev=e,f.Prev=h,h.Next=f);a.OutPt1=e;a.OutPt2=f;return!0}if(h){for(f=e;e.Prev.Pt.Y===e.Pt.Y&&e.Prev!==f&&e.Prev!==g;)e=e.Prev;for(;f.Next.Pt.Y===f.Pt.Y&&
708f.Next!==e&&f.Next!==g;)f=f.Next;if(f.Next===e||f.Next===g)return!1;for(h=g;g.Prev.Pt.Y===g.Pt.Y&&g.Prev!==h&&g.Prev!==f;)g=g.Prev;for(;h.Next.Pt.Y===h.Pt.Y&&h.Next!==g&&h.Next!==e;)h=h.Next;if(h.Next===g||h.Next===e)return!1;c={Left:null,Right:null};if(!this.GetOverlap(e.Pt.X,f.Pt.X,g.Pt.X,h.Pt.X,c))return!1;b=c.Left;var k=c.Right;c=new d.IntPoint0;e.Pt.X>=b&&e.Pt.X<=k?(c.X=e.Pt.X,c.Y=e.Pt.Y,d.use_xyz&&(c.Z=e.Pt.Z),b=e.Pt.X>f.Pt.X):g.Pt.X>=b&&g.Pt.X<=k?(c.X=g.Pt.X,c.Y=g.Pt.Y,d.use_xyz&&(c.Z=g.Pt.Z),
709b=g.Pt.X>h.Pt.X):f.Pt.X>=b&&f.Pt.X<=k?(c.X=f.Pt.X,c.Y=f.Pt.Y,d.use_xyz&&(c.Z=f.Pt.Z),b=f.Pt.X>e.Pt.X):(c.X=h.Pt.X,c.Y=h.Pt.Y,d.use_xyz&&(c.Z=h.Pt.Z),b=h.Pt.X>g.Pt.X);a.OutPt1=e;a.OutPt2=g;return this.JoinHorz(e,f,g,h,c,b)}for(f=e.Next;d.IntPoint.op_Equality(f.Pt,e.Pt)&&f!==e;)f=f.Next;if(k=f.Pt.Y>e.Pt.Y||!d.ClipperBase.SlopesEqual4(e.Pt,f.Pt,a.OffPt,this.m_UseFullRange)){for(f=e.Prev;d.IntPoint.op_Equality(f.Pt,e.Pt)&&f!==e;)f=f.Prev;if(f.Pt.Y>e.Pt.Y||!d.ClipperBase.SlopesEqual4(e.Pt,f.Pt,a.OffPt,
710this.m_UseFullRange))return!1}for(h=g.Next;d.IntPoint.op_Equality(h.Pt,g.Pt)&&h!==g;)h=h.Next;var l=h.Pt.Y>g.Pt.Y||!d.ClipperBase.SlopesEqual4(g.Pt,h.Pt,a.OffPt,this.m_UseFullRange);if(l){for(h=g.Prev;d.IntPoint.op_Equality(h.Pt,g.Pt)&&h!==g;)h=h.Prev;if(h.Pt.Y>g.Pt.Y||!d.ClipperBase.SlopesEqual4(g.Pt,h.Pt,a.OffPt,this.m_UseFullRange))return!1}if(f===e||h===g||f===h||b===c&&k===l)return!1;k?(f=this.DupOutPt(e,!1),h=this.DupOutPt(g,!0),e.Prev=g,g.Next=e,f.Next=h,h.Prev=f):(f=this.DupOutPt(e,!0),h=
711this.DupOutPt(g,!1),e.Next=g,g.Prev=e,f.Prev=h,h.Next=f);a.OutPt1=e;a.OutPt2=f;return!0};d.Clipper.GetBounds=function(a){for(var b=0,c=a.length;b<c&&0===a[b].length;)b++;if(b===c)return new d.IntRect(0,0,0,0);var e=new d.IntRect;e.left=a[b][0].X;e.right=e.left;e.top=a[b][0].Y;for(e.bottom=e.top;b<c;b++)for(var f=0,g=a[b].length;f<g;f++)a[b][f].X<e.left?e.left=a[b][f].X:a[b][f].X>e.right&&(e.right=a[b][f].X),a[b][f].Y<e.top?e.top=a[b][f].Y:a[b][f].Y>e.bottom&&(e.bottom=a[b][f].Y);return e};d.Clipper.prototype.GetBounds2=
712function(a){var b=a,c=new d.IntRect;c.left=a.Pt.X;c.right=a.Pt.X;c.top=a.Pt.Y;c.bottom=a.Pt.Y;
712for(a=a.Next;a!==b;)a.Pt.X<c.left&&(c.left=a.Pt.X),a.Pt.X>c.right&&(c.right=a.Pt.X),a.Pt.Y<c.top&&(c.top=a.Pt.Y),a.Pt.Y>c.bottom&&(c.bottom=a.Pt.Y),a=a.Next;return c};d.Clipper.PointInPolygon=function(a,b){var c=0,e=b.length;if(3>e)return 0;for(var d=b[0],g=1;g<=e;++g){var h=g===e?b[0]:b[g];if(h.Y===a.Y&&(h.X===a.X||d.Y===a.Y&&h.X>a.X===d.X<a.X))return-1;if(d.Y<a.Y!==h.Y<a.Y)if(d.X>=a.X)if(h.X>a.X)c=1-c;
713else{var k=(d.X-a.X)*(h.Y-a.Y)-(h.X-a.X)*(d.Y-a.Y);if(0===k)return-1;0<k===h.Y>d.Y&&(c=1-c)}else if(h.X>a.X){k=(d.X-a.X)*(h.Y-a.Y)-(h.X-a.X)*(d.Y-a.Y);if(0===k)return-1;0<k===h.Y>d.Y&&(c=1-c)}d=h}return c};d.Clipper.prototype.PointInPolygon=function(a,b){var c=0,d=b,f=a.X,g=a.Y;var h=b.Pt.X;var k=b.Pt.Y;do{b=b.Next;var l=b.Pt.X,n=b.Pt.Y;if(n===g&&(l===f||k===g&&l>f===h<f))return-1;if(k<g!==n<g)if(h>=f)if(l>f)c=1-c;else{h=(h-f)*(n-g)-(l-f)*(k-g);if(0===h)return-1;0<h===n>k&&(c=1-c)}else if(l>f){h=
714(h-f)*(n-g)-(l-f)*(k-g);if(0===h)return-1;0<h===n>k&&(c=1-c)}h=l;k=n}while(d!==b);return c};d.Clipper.prototype.Poly2ContainsPoly1=function(a,b){var c=a;do{var d=this.PointInPolygon(c.Pt,b);if(0<=d)return 0<d;c=c.Next}while(c!==a);return!0};d.Clipper.prototype.FixupFirstLefts1=function(a,b){for(var c,e,f=0,g=this.m_PolyOuts.length;f<g;f++)c=this.m_PolyOuts[f],e=d.Clipper.ParseFirstLeft(c.FirstLeft),null!==c.Pts&&e===a&&this.Poly2ContainsPoly1(c.Pts,b.Pts)&&(c.FirstLeft=b)};d.Clipper.prototype.FixupFirstLefts2=
715function(a,b){for(var c=b.FirstLeft,e,f,g=0,h=this.m_PolyOuts.length;g<h;g++)if(e=this.m_PolyOuts[g],null!==e.Pts&&e!==b&&e!==a&&(f=d.Clipper.ParseFirstLeft(e.FirstLeft),f===c||f===a||f===b))if(this.Poly2ContainsPoly1(e.Pts,a.Pts))e.FirstLeft=a;else if(this.Poly2ContainsPoly1(e.Pts,b.Pts))e.FirstLeft=b;else if(e.FirstLeft===a||e.FirstLeft===b)e.FirstLeft=c};d.Clipper.prototype.FixupFirstLefts3=function(a,b){for(var c,e,f=0,g=this.m_PolyOuts.length;f<g;f++)c=this.m_PolyOuts[f],e=d.Clipper.ParseFirstLeft(c.FirstLeft),
716null!==c.Pts&&e===a&&(c.FirstLeft=b)};d.Clipper.ParseFirstLeft=function(a){for(;null!==a&&null===a.Pts;)a=a.FirstLeft;return a};d.Clipper.prototype.JoinCommonEdges=function(){for(var a=0,b=this.m_Joins.length;a<b;a++){var c=this.m_Joins[a],d=this.GetOutRec(c.OutPt1.Idx),f=this.GetOutRec(c.OutPt2.Idx);if(null!==d.Pts&&null!==f.Pts&&!d.IsOpen&&!f.IsOpen){var g=d===f?d:this.OutRec1RightOfOutRec2(d,f)?f:this.OutRec1RightOfOutRec2(f,d)?d:this.GetLowermostRec(d,f);this.JoinPoints(c,d,f)&&(d===f?(d.Pts=
717c.OutPt1,d.BottomPt=null,f=this.CreateOutRec(),f.Pts=c.OutPt2,this.UpdateOutPtIdxs(f),this.Poly2ContainsPoly1(f.Pts,d.Pts)?(f.IsHole=!d.IsHole,f.FirstLeft=d,this.m_UsingPolyTree&&this.FixupFirstLefts2(f,d),(f.IsHole^this.ReverseSolution)==0<this.Area$1(f)&&this.ReversePolyPtLinks(f.Pts)):this.Poly2ContainsPoly1(d.Pts,f.Pts)?(f.IsHole=d.IsHole,d.IsHole=!f.IsHole,f.FirstLeft=d.FirstLeft,d.FirstLeft=f,this.m_UsingPolyTree&&this.FixupFirstLefts2(d,f),(d.IsHole^this.ReverseSolution)==0<this.Area$1(d)&&
718this.ReversePolyPtLinks(d.Pts)):(f.IsHole=d.IsHole,f.FirstLeft=d.FirstLeft,this.m_UsingPolyTree&&this.FixupFirstLefts1(d,f))):(f.Pts=null,f.BottomPt=null,f.Idx=d.Idx,d.IsHole=g.IsHole,g===f&&(d.FirstLeft=f.FirstLeft),f.FirstLeft=d,this.m_UsingPolyTree&&this.FixupFirstLefts3(f,d)))}}};d.Clipper.prototype.UpdateOutPtIdxs=function(a){var b=a.Pts;do b.Idx=a.Idx,b=b.Prev;while(b!==a.Pts)};d.Clipper.prototype.DoSimplePolygons=function(){for(var a=0;a<this.m_PolyOuts.length;){var b=this.m_PolyOuts[a++],
719c=b.Pts;if(null!==c&&!b.IsOpen){do{for(var e=c.Next;e!==b.Pts;){if(d.IntPoint.op_Equality(c.Pt,e.Pt)&&e.Next!==c&&e.Prev!==c){var f=c.Prev,g=e.Prev;c.Prev=g;g.Next=c;e.Prev=f;f.Next=e;b.Pts=c;f=this.CreateOutRec();f.Pts=e;this.UpdateOutPtIdxs(f);this.Poly2ContainsPoly1(f.Pts,b.Pts)?(f.IsHole=!b.IsHole,f.FirstLeft=b,this.m_UsingPolyTree&&this.FixupFirstLefts2(f,b)):this.Poly2ContainsPoly1(b.Pts,f.Pts)?(f.IsHole=b.IsHole,b.IsHole=!f.IsHole,f.FirstLeft=b.FirstLeft,b.FirstLeft=f,this.m_UsingPolyTree&&
720this.FixupFirstLefts2(b,f)):(f.IsHole=b.IsHole,f.FirstLeft=b.FirstLeft,this.m_UsingPolyTree&&this.FixupFirstLefts1(b,f));e=c}e=e.Next}c=c.Next}while(c!==b.Pts)}}};
720d.Clipper.Area=function(a){if(!Array.isArray(a))return 0;var b=a.length;if(3>b)return 0;for(var c=0,d=0,f=b-1;d<b;++d)c+=(a[f].X+a[d].X)*(a[f].Y-a[d].Y),f=d;return.5*-c};d.Clipper.prototype.Area=function(a){var b=a;if(null===a)return 0;var c=0;do c+=(a.Prev.Pt.X+a.Pt.X)*(a.Prev.Pt.Y-a.Pt.Y),a=a.Next;while(a!==b);return.5*c};d.Clipper.prototype.Area$1=
721function(a){return this.Area(a.Pts)};d.Clipper.SimplifyPolygon=function(a,b){var c=[],e=new d.Clipper(0);e.StrictlySimple=!0;e.AddPath(a,d.PolyType.ptSubject,!0);e.Execute(d.ClipType.ctUnion,c,b,b);return c};d.Clipper.SimplifyPolygons=function(a,b){"undefined"===typeof b&&(b=d.PolyFillType.pftEvenOdd);var c=[],e=new d.Clipper(0);e.StrictlySimple=!0;e.AddPaths(a,d.PolyType.ptSubject,!0);e.Execute(d.ClipType.ctUnion,c,b,b);return c};d.Clipper.DistanceSqrd=function(a,b){var c=a.X-b.X,d=a.Y-b.Y;return c*
722c+d*d};d.Clipper.DistanceFromLineSqrd=function(a,b,c){var d=b.Y-c.Y;c=c.X-b.X;b=d*b.X+c*b.Y;b=d*a.X+c*a.Y-b;return b*b/(d*d+c*c)};d.Clipper.SlopesNearCollinear=function(a,b,c,e){return Math.abs(a.X-b.X)>Math.abs(a.Y-b.Y)?a.X>b.X===a.X<c.X?d.Clipper.DistanceFromLineSqrd(a,b,c)<e:b.X>a.X===b.X<c.X?d.Clipper.DistanceFromLineSqrd(b,a,c)<e:d.Clipper.DistanceFromLineSqrd(c,a,b)<e:a.Y>b.Y===a.Y<c.Y?d.Clipper.DistanceFromLineSqrd(a,b,c)<e:b.Y>a.Y===b.Y<c.Y?d.Clipper.DistanceFromLineSqrd(b,a,c)<e:d.Clipper.DistanceFromLineSqrd(c,
723a,b)<e};d.Clipper.PointsAreClose=function(a,b,c){var d=a.X-b.X;a=a.Y-b.Y;return d*d+a*a<=c};d.Clipper.ExcludeOp=function(a){var b=a.Prev;b.Next=a.Next;a.Next.Prev=b;b.Idx=0;return b};d.Clipper.CleanPolygon=function(a,b){"undefined"===typeof b&&(b=1.415);var c=a.length;if(0===c)return[];for(var e=Array(c),f=0;f<c;++f)e[f]=new d.OutPt;for(f=0;f<c;++f)e[f].Pt=a[f],e[f].Next=e[(f+1)%c],e[f].Next.Prev=e[f],e[f].Idx=0;f=b*b;for(e=e[0];0===e.Idx&&e.Next!==e.Prev;)d.Clipper.PointsAreClose(e.Pt,e.Prev.Pt,
724f)?(e=d.Clipper.ExcludeOp(e),c--):d.Clipper.PointsAreClose(e.Prev.Pt,e.Next.Pt,f)?(d.Clipper.ExcludeOp(e.Next),e=d.Clipper.ExcludeOp(e),c-=2):d.Clipper.SlopesNearCollinear(e.Prev.Pt,e.Pt,e.Next.Pt,f)?(e=d.Clipper.ExcludeOp(e),c--):(e.Idx=1,e=e.Next);3>c&&(c=0);var g=Array(c);for(f=0;f<c;++f)g[f]=new d.IntPoint1(e.Pt),e=e.Next;return g};d.Clipper.CleanPolygons=function(a,b){for(var c=Array(a.length),e=0,f=a.length;e<f;e++)c[e]=d.Clipper.CleanPolygon(a[e],b);return c};d.Clipper.Minkowski=function(a,
725b,c,e){e=e?1:0;var f=a.length,g=b.length,h=[];if(c)for(c=0;c<g;c++){var k=Array(f);for(var l=0,n=a.length,r=a[l];l<n;l++,r=a[l])k[l]=new d.IntPoint2(b[c].X+r.X,b[c].Y+r.Y);h.push(k)}else for(c=0;c<g;c++){k=Array(f);l=0;n=a.length;for(r=a[l];l<n;l++,r=a[l])k[l]=new d.IntPoint2(b[c].X-r.X,b[c].Y-r.Y);h.push(k)}a=[];for(c=0;c<g-1+e;c++)for(l=0;l<f;l++)b=[],b.push(h[c%g][l%f]),b.push(h[(c+1)%g][l%f]),b.push(h[(c+1)%g][(l+1)%f]),b.push(h[c%g][(l+1)%f]),d.Clipper.Orientation(b)||b.reverse(),a.push(b);return a};
726d.Clipper.MinkowskiSum=function(a,b,c){if(b[0]instanceof Array){var e=b;var f=new d.Paths;b=new d.Clipper;for(var g=0;g<e.length;++g){var h=d.Clipper.Minkowski(a,e[g],!0,c);b.AddPaths(h,d.PolyType.ptSubject,!0);c&&(h=d.Clipper.TranslatePath(e[g],a[0]),b.AddPath(h,d.PolyType.ptClip,!0))}b.Execute(d.ClipType.ctUnion,f,d.PolyFillType.pftNonZero,d.PolyFillType.pftNonZero);return f}e=d.Clipper.Minkowski(a,b,!0,c);b=new d.Clipper;b.AddPaths(e,d.PolyType.ptSubject,!0);b.Execute(d.ClipType.ctUnion,e,d.PolyFillType.pftNonZero,
727d.PolyFillType.pftNonZero);return e};d.Clipper.TranslatePath=function(a,b){for(var c=new d.Path,e=0;e<a.length;e++)c.push(new d.IntPoint2(a[e].X+b.X,a[e].Y+b.Y));return c};d.Clipper.MinkowskiDiff=function(a,b){var c=d.Clipper.Minkowski(a,b,!1,!0),e=new d.Clipper;e.AddPaths(c,d.PolyType.ptSubject,!0);e.Execute(d.ClipType.ctUnion,c,d.PolyFillType.pftNonZero,d.PolyFillType.pftNonZero);return c};d.Clipper.PolyTreeToPaths=function(a){var b=[];d.Clipper.AddPolyNodeToPaths(a,d.Clipper.NodeType.ntAny,b);
728return b};d.Clipper.AddPolyNodeToPaths=function(a,b,c){var e=!0;switch(b){case d.Clipper.NodeType.ntOpen:return;case d.Clipper.NodeType.ntClosed:e=!a.IsOpen}0<a.m_polygon.length&&e&&c.push(a.m_polygon);e=0;a=a.Childs();for(var f=a.length,g=a[e];e<f;e++,g=a[e])d.Clipper.AddPolyNodeToPaths(g,b,c)};d.Clipper.OpenPathsFromPolyTree=function(a){for(var b=new d.Paths,c=0,e=a.ChildCount();c<e;c++)a.Childs()[c].IsOpen&&b.push(a.Childs()[c].m_polygon);return b};d.Clipper.ClosedPathsFromPolyTree=function(a){var b=
729new d.Paths;d.Clipper.AddPolyNodeToPaths(a,d.Clipper.NodeType.ntClosed,b);return b};v(d.Clipper,d.ClipperBase);d.Clipper.NodeType={ntAny:0,ntOpen:1,ntClosed:2};d.ClipperOffset=function(a,b){"undefined"===typeof a&&(a=2);"undefined"===typeof b&&(b=d.ClipperOffset.def_arc_tolerance);this.m_destPolys=new d.Paths;this.m_srcPoly=new d.Path;this.m_destPoly=new d.Path;this.m_normals=[];this.m_StepsPerRad=this.m_miterLim=this.m_cos=this.m_sin=this.m_sinA=this.m_delta=0;this.m_lowest=new d.IntPoint0;this.m_polyNodes=
730new d.PolyNode;this.MiterLimit=a;this.ArcTolerance=b;this.m_lowest.X=-1};d.ClipperOffset.two_pi=6.28318530717959;d.ClipperOffset.def_arc_tolerance=.25;d.ClipperOffset.prototype.Clear=function(){d.Clear(this.m_polyNodes.Childs());this.m_lowest.X=-1};d.ClipperOffset.Round=d.Clipper.Round;d.ClipperOffset.prototype.AddPath=function(a,b,c){var e=a.length-1;if(!(0>e)){var f=new d.PolyNode;f.m_jointype=b;f.m_endtype=c;if(c===d.EndType.etClosedLine||c===d.EndType.etClosedPolygon)for(;0<e&&d.IntPoint.op_Equality(a[0],
731a[e]);)e--;f.m_polygon.push(a[0]);var g=0;b=0;for(var h=1;h<=e;h++)d.IntPoint.op_Inequality(f.m_polygon[g],a[h])&&(g++,f.m_polygon.push(a[h]),a[h].Y>f.m_polygon[b].Y||a[h].Y===f.m_polygon[b].Y&&a[h].X<f.m_polygon[b].X)&&(b=g);if(!(c===d.EndType.etClosedPolygon&&2>g)&&(this.m_polyNodes.AddChild(f),c===d.EndType.etClosedPolygon))if(0>this.m_lowest.X)this.m_lowest=new d.IntPoint2(this.m_polyNodes.ChildCount()-1,b);else if(a=this.m_polyNodes.Childs()[this.m_lowest.X].m_polygon[this.m_lowest.Y],f.m_polygon[b].Y>
732a.Y||f.m_polygon[b].Y===a.Y&&f.m_polygon[b].X<a.X)this.m_lowest=new d.IntPoint2(this.m_polyNodes.ChildCount()-1,b)}};d.ClipperOffset.prototype.AddPaths=function(a,b,c){for(var d=0,f=a.length;d<f;d++)this.AddPath(a[d],b,c)};d.ClipperOffset.prototype.FixOrientations=function(){if(0<=this.m_lowest.X&&!d.Clipper.Orientation(this.m_polyNodes.Childs()[this.m_lowest.X].m_polygon))for(var a=0;a<this.m_polyNodes.ChildCount();a++){var b=this.m_polyNodes.Childs()[a];(b.m_endtype===d.EndType.etClosedPolygon||
733b.m_endtype===d.EndType.etClosedLine&&d.Clipper.Orientation(b.m_polygon))&&b.m_polygon.reverse()}else for(a=0;a<this.m_polyNodes.ChildCount();a++)b=this.m_polyNodes.Childs()[a],b.m_endtype!==d.EndType.etClosedLine||d.Clipper.Orientation(b.m_polygon)||b.m_polygon.reverse()};d.ClipperOffset.GetUnitNormal=function(a,b){var c=b.X-a.X,e=b.Y-a.Y;if(0===c&&0===e)return new d.DoublePoint2(0,0);var f=1/Math.sqrt(c*c+e*e);return new d.DoublePoint2(e*f,-(c*f))};d.ClipperOffset.prototype.DoOffset=function(a){var b;
734this.m_destPolys=[];this.m_delta=a;if(d.ClipperBase.near_zero(a))for(var c=0;c<this.m_polyNodes.ChildCount();c++){var e=this.m_polyNodes.Childs()[c];e.m_endtype===d.EndType.etClosedPolygon&&this.m_destPolys.push(e.m_polygon)}else{this.m_miterLim=2<this.MiterLimit?2/(this.MiterLimit*this.MiterLimit):.5;var f=3.14159265358979/Math.acos(1-(0>=this.ArcTolerance?d.ClipperOffset.def_arc_tolerance:this.ArcTolerance>Math.abs(a)*d.ClipperOffset.def_arc_tolerance?Math.abs(a)*d.ClipperOffset.def_arc_tolerance:
735this.ArcTolerance)/Math.abs(a));this.m_sin=Math.sin(d.ClipperOffset.two_pi/f);this.m_cos=Math.cos(d.ClipperOffset.two_pi/f);this.m_StepsPerRad=f/d.ClipperOffset.two_pi;0>a&&(this.m_sin=-this.m_sin);for(c=0;c<this.m_polyNodes.ChildCount();c++){e=this.m_polyNodes.Childs()[c];this.m_srcPoly=e.m_polygon;var g=this.m_srcPoly.length;if(!(0===g||0>=a&&(3>g||e.m_endtype!==d.EndType.etClosedPolygon))){this.m_destPoly=[];if(1===g)if(e.m_jointype===d.JoinType.jtRound)for(g=1,e=0,b=1;b<=f;b++){this.m_destPoly.push(new d.IntPoint2(d.ClipperOffset.Round(this.m_srcPoly[0].X+
736g*a),d.ClipperOffset.Round(this.m_srcPoly[0].Y+e*a)));var h=g;g=g*this.m_cos-this.m_sin*e;e=h*this.m_sin+e*this.m_cos}else for(e=g=-1,b=0;4>b;++b)this.m_destPoly.push(new d.IntPoint2(d.ClipperOffset.Round(this.m_srcPoly[0].X+g*a),d.ClipperOffset.Round(this.m_srcPoly[0].Y+e*a))),0>g?g=1:0>e?e=1:g=-1;else{for(b=this.m_normals.length=0;b<g-1;b++)this.m_normals.push(d.ClipperOffset.GetUnitNormal(this.m_srcPoly[b],this.m_srcPoly[b+1]));e.m_endtype===d.EndType.etClosedLine||e.m_endtype===d.EndType.etClosedPolygon?
737this.m_normals.push(d.ClipperOffset.GetUnitNormal(this.m_srcPoly[g-1],this.m_srcPoly[0])):this.m_normals.push(new d.DoublePoint1(this.m_normals[g-2]));if(e.m_endtype===d.EndType.etClosedPolygon)for(h=g-1,b=0;b<g;b++)h=this.OffsetPoint(b,h,e.m_jointype);else if(e.m_endtype===d.EndType.etClosedLine){h=g-1;for(b=0;b<g;b++)h=this.OffsetPoint(b,h,e.m_jointype);this.m_destPolys.push(this.m_destPoly);this.m_destPoly=[];h=this.m_normals[g-1];for(b=g-1;0<b;b--)this.m_normals[b]=new d.DoublePoint2(-this.m_normals[b-
7381].X,-this.m_normals[b-1].Y);this.m_normals[0]=new d.DoublePoint2(-h.X,-h.Y);h=0;for(b=g-1;0<=b;b--)h=this.OffsetPoint(b,h,e.m_jointype)}else{h=0;for(b=1;b<g-1;++b)h=this.OffsetPoint(b,h,e.m_jointype);e.m_endtype===d.EndType.etOpenButt?(b=g-1,h=new d.IntPoint2(d.ClipperOffset.Round(this.m_srcPoly[b].X+this.m_normals[b].X*a),d.ClipperOffset.Round(this.m_srcPoly[b].Y+this.m_normals[b].Y*a)),this.m_destPoly.push(h),h=new d.IntPoint2(d.ClipperOffset.Round(this.m_srcPoly[b].X-this.m_normals[b].X*a),d.ClipperOffset.Round(this.m_srcPoly[b].Y-
739this.m_normals[b].Y*a)),this.m_destPoly.push(h)):(b=g-1,h=g-2,this.m_sinA=0,this.m_normals[b]=new d.DoublePoint2(-this.m_normals[b].X,-this.m_normals[b].Y),e.m_endtype===d.EndType.etOpenSquare?this.DoSquare(b,h):this.DoRound(b,h));for(b=g-1;0<b;b--)this.m_normals[b]=new d.DoublePoint2(-this.m_normals[b-1].X,-this.m_normals[b-1].Y);this.m_normals[0]=new d.DoublePoint2(-this.m_normals[1].X,-this.m_normals[1].Y);h=g-1;for(b=h-1;0<b;--b)h=this.OffsetPoint(b,h,e.m_jointype);e.m_endtype===d.EndType.etOpenButt?
740(h=new d.IntPoint2(d.ClipperOffset.Round(this.m_srcPoly[0].X-this.m_normals[0].X*a),d.ClipperOffset.Round(this.m_srcPoly[0].Y-this.m_normals[0].Y*a)),this.m_destPoly.push(h),h=new d.IntPoint2(d.ClipperOffset.Round(this.m_srcPoly[0].X+this.m_normals[0].X*a),d.ClipperOffset.Round(this.m_srcPoly[0].Y+this.m_normals[0].Y*a)),this.m_destPoly.push(h)):(this.m_sinA=0,e.m_endtype===d.EndType.etOpenSquare?this.DoSquare(0,1):this.DoRound(0,1))}}this.m_destPolys.push(this.m_destPoly)}}}};d.ClipperOffset.prototype.Execute=
741function(){var a=arguments;if(a[0]instanceof d.PolyTree){var b=a[0];var c=a[1];b.Clear();this.FixOrientations();this.DoOffset(c);a=new d.Clipper(0);a.AddPaths(this.m_destPolys,d.PolyType.ptSubject,!0);if(0<c)a.Execute(d.ClipType.ctUnion,b,d.PolyFillType.pftPositive,d.PolyFillType.pftPositive);else{var e=d.Clipper.GetBounds(this.m_destPolys);c=new d.Path;c.push(new d.IntPoint2(e.left-10,e.bottom+10));c.push(new d.IntPoint2(e.right+10,e.bottom+10));c.push(new d.IntPoint2(e.right+10,e.top-10));c.push(new d.IntPoint2(e.left-
74210,e.top-10));a.AddPath(c,d.PolyType.ptSubject,!0);a.ReverseSolution=!0;a.Execute(d.ClipType.ctUnion,b,d.PolyFillType.pftNegative,d.PolyFillType.pftNegative);if(1===b.ChildCount()&&0<b.Childs()[0].ChildCount())for(a=b.Childs()[0],b.Childs()[0]=a.Childs()[0],b.Childs()[0].m_Parent=b,c=1;c<a.ChildCount();c++)b.AddChild(a.Childs()[c]);else b.Clear()}}else b=a[0],c=a[1],d.Clear(b),this.FixOrientations(),this.DoOffset(c),a=new d.Clipper(0),a.AddPaths(this.m_destPolys,d.PolyType.ptSubject,!0),0<c?a.Execute(d.ClipType.ctUnion,
743b,d.PolyFillType.pftPositive,d.PolyFillType.pftPositive):(e=d.Clipper.GetBounds(this.m_destPolys),c=new d.Path,c.push(new d.IntPoint2(e.left-10,e.bottom+10)),c.push(new d.IntPoint2(e.right+10,e.bottom+10)),c.push(new d.IntPoint2(e.right+10,e.to
743p-10)),c.push(new d.IntPoint2(e.left-10,e.top-10)),a.AddPath(c,d.PolyType.ptSubject,!0),a.ReverseSolution=!0,a.Execute(d.ClipType.ctUnion,b,d.PolyFillType.pftNegative,d.PolyFillType.pftNegative),0<b.length&&b.splice(0,1))};d.ClipperOffset.prototype.OffsetPoint=
744function(a,b,c){this.m_sinA=this.m_normals[b].X*this.m_normals[a].Y-this.m_normals[a].X*this.m_normals[b].Y;if(1>Math.abs(this.m_sinA*this.m_delta)){if(0<this.m_normals[b].X*this.m_normals[a].X+this.m_normals[a].Y*this.m_normals[b].Y)return this.m_destPoly.push(new d.IntPoint2(d.ClipperOffset.Round(this.m_srcPoly[a].X+this.m_normals[b].X*this.m_delta),d.ClipperOffset.Round(this.m_srcPoly[a].Y+this.m_normals[b].Y*this.m_delta))),b}else 1<this.m_sinA?this.m_sinA=1:-1>this.m_sinA&&(this.m_sinA=-1);if(0>
745this.m_sinA*this.m_delta)this.m_destPoly.push(new d.IntPoint2(d.ClipperOffset.Round(this.m_srcPoly[a].X+this.m_normals[b].X*this.m_delta),d.ClipperOffset.Round(this.m_srcPoly[a].Y+this.m_normals[b].Y*this.m_delta))),this.m_destPoly.push(new d.IntPoint1(this.m_srcPoly[a])),this.m_destPoly.push(new d.IntPoint2(d.ClipperOffset.Round(this.m_srcPoly[a].X+this.m_normals[a].X*this.m_delta),d.ClipperOffset.Round(this.m_srcPoly[a].Y+this.m_normals[a].Y*this.m_delta)));else switch(c){case d.JoinType.jtMiter:c=
7461+(this.m_normals[a].X*this.m_normals[b].X+this.m_normals[a].Y*this.m_normals[b].Y);c>=this.m_miterLim?this.DoMiter(a,b,c):this.DoSquare(a,b);break;case d.JoinType.jtSquare:this.DoSquare(a,b);break;case d.JoinType.jtRound:this.DoRound(a,b)}return a};d.ClipperOffset.prototype.DoSquare=function(a,b){var c=Math.tan(Math.atan2(this.m_sinA,this.m_normals[b].X*this.m_normals[a].X+this.m_normals[b].Y*this.m_normals[a].Y)/4);this.m_destPoly.push(new d.IntPoint2(d.ClipperOffset.Round(this.m_srcPoly[a].X+this.m_delta*
747(this.m_normals[b].X-this.m_normals[b].Y*c)),d.ClipperOffset.Round(this.m_srcPoly[a].Y+this.m_delta*(this.m_normals[b].Y+this.m_normals[b].X*c))));this.m_destPoly.push(new d.IntPoint2(d.ClipperOffset.Round(this.m_srcPoly[a].X+this.m_delta*(this.m_normals[a].X+this.m_normals[a].Y*c)),d.ClipperOffset.Round(this.m_srcPoly[a].Y+this.m_delta*(this.m_normals[a].Y-this.m_normals[a].X*c))))};d.ClipperOffset.prototype.DoMiter=function(a,b,c){c=this.m_delta/c;this.m_destPoly.push(new d.IntPoint2(d.ClipperOffset.Round(this.m_srcPoly[a].X+
748(this.m_normals[b].X+this.m_normals[a].X)*c),d.ClipperOffset.Round(this.m_srcPoly[a].Y+(this.m_normals[b].Y+this.m_normals[a].Y)*c)))};d.ClipperOffset.prototype.DoRound=function(a,b){for(var c=Math.max(d.Cast_Int32(d.ClipperOffset.Round(this.m_StepsPerRad*Math.abs(Math.atan2(this.m_sinA,this.m_normals[b].X*this.m_normals[a].X+this.m_normals[b].Y*this.m_normals[a].Y)))),1),e=this.m_normals[b].X,f=this.m_normals[b].Y,g,h=0;h<c;++h)this.m_destPoly.push(new d.IntPoint2(d.ClipperOffset.Round(this.m_srcPoly[a].X+
749e*this.m_delta),d.ClipperOffset.Round(this.m_srcPoly[a].Y+f*this.m_delta))),g=e,e=e*this.m_cos-this.m_sin*f,f=g*this.m_sin+f*this.m_cos;this.m_destPoly.push(new d.IntPoint2(d.ClipperOffset.Round(this.m_srcPoly[a].X+this.m_normals[a].X*this.m_delta),d.ClipperOffset.Round(this.m_srcPoly[a].Y+this.m_normals[a].Y*this.m_delta)))};d.Error=function(a){throw Error(a);};d.JS={};d.JS.AreaOfPolygon=function(a,b){b||(b=1);return d.Clipper.Area(a)/(b*b)};d.JS.AreaOfPolygons=function(a,
750b){b||(b=1);for(var c=0,e=0;e<a.length;e++)c+=d.Clipper.Area(a[e]);return c/(b*b)};d.JS.BoundsOfPath=function(a,b){return d.JS.BoundsOfPaths([a],b)};d.JS.BoundsOfPaths=function(a,b){b||(b=1);var c=d.Clipper.GetBounds(a);c.left/=b;c.bottom/=b;c.right/=b;c.top/=b;return c};d.JS.Clean=function(a,b){if(!(a instanceof Array))return[];var c=a[0]instanceof Array;a=d.JS.Clone(a);if("number"!==typeof b||null===b)return d.Error("Delta is not a number in Clean()."),a;if(0===a.length||1===a.length&&0===a[0].length||
7510>b)return a;
751c||(a=[a]);for(var e=a.length,f,g,h,k,l,n,r,p=[],t=0;t<e;t++)if(g=a[t],f=g.length,0!==f)if(3>f)h=g,p.push(h);else{h=g;k=b*b;l=g[0];for(r=n=1;r<f;r++)(g[r].X-l.X)*(g[r].X-l.X)+(g[r].Y-l.Y)*(g[r].Y-l.Y)<=k||(h[n]=g[r],l=g[r],n++);l=g[n-1];(g[0].X-l.X)*(g[0].X-l.X)+(g[0].Y-l.Y)*(g[0].Y-l.Y)<=k&&n--;n<f&&h.splice(n,f-n);h.length&&p.push(h)}!c&&p.length?p=p[0]:c||0!==p.length?c&&0===p.length&&(p=[[]]):p=[];return p};d.JS.Clone=function(a){if(!(a instanceof Array)||0===a.length)return[];if(1===
752a.length&&0===a[0].length)return[[]];var b=a[0]instanceof Array;b||(a=[a]);var c=a.length,d,f,g=Array(c);for(d=0;d<c;d++){var h=a[d].length;var k=Array(h);for(f=0;f<h;f++)k[f]={X:a[d][f].X,Y:a[d][f].Y};g[d]=k}b||(g=g[0]);return g};d.JS.Lighten=function(a,b){if(!(a instanceof Array))return[];if("number"!==typeof b||null===b)return d.Error("Tolerance is not a number in Lighten()."),d.JS.Clone(a);if(0===a.length||1===a.length&&0===a[0].length||0>b)return d.JS.Clone(a);var c=a[0]instanceof Array;c||(a=
753[a]);var e,f,g,h=a.length,k=b*b,l=[];for(e=0;e<h;e++){var n=a[e];var r=n.length;if(0!==r){for(g=0;1E6>g;g++){var p=[];r=n.length;if(n[r-1].X!==n[0].X||n[r-1].Y!==n[0].Y){var t=1;n.push({X:n[0].X,Y:n[0].Y});r=n.length}else t=0;var u=[];for(f=0;f<r-2;f++){var q=n[f];var v=n[f+1];var w=n[f+2];var x=q.X;var y=q.Y;q=w.X-x;var A=w.Y-y;if(0!==q||0!==A){var z=((v.X-x)*q+(v.Y-y)*A)/(q*q+A*A);1<z?(x=w.X,y=w.Y):0<z&&(x+=q*z,y+=A*z)}q=v.X-x;A=v.Y-y;w=q*q+A*A;w<=k&&(u[f+1]=1,f++)}p.push({X:n[0].X,Y:n[0].Y});for(f=
7541;f<r-1;f++)u[f]||p.push({X:n[f].X,Y:n[f].Y});p.push({X:n[r-1].X,Y:n[r-1].Y});t&&n.pop();if(u.length)n=p;else break}r=p.length;p[r-1].X===p[0].X&&p[r-1].Y===p[0].Y&&p.pop();2<p.length&&l.push(p)}}c||(l=l[0]);"undefined"===typeof l&&(l=[]);return l};d.JS.PerimeterOfPath=function(a,b,c){if("undefined"===typeof a)return 0;var d=Math.sqrt,f=0,g=a.length;if(2>g)return 0;b&&(a[g]=a[0],g++);for(;--g;){var h=a[g];var k=h.X;h=h.Y;var l=a[g-1];var n=l.X;l=l.Y;f+=d((k-n)*(k-n)+(h-l)*(h-l))}b&&a.pop();return f/
755c};d.JS.PerimeterOfPaths=function(a,b,c){c||(c=1);for(var e=0,f=0;f<a.length;f++)e+=d.JS.PerimeterOfPath(a[f],b,c);return e};d.JS.ScaleDownPath=function(a,b){var c;b||(b=1);for(c=a.length;c--;){var d=a[c];d.X/=b;d.Y/=b}};d.JS.ScaleDownPaths=function(a,b){var c,d;b||(b=1);for(c=a.length;c--;)for(d=a[c].length;d--;){var f=a[c][d];f.X/=b;f.Y/=b}};d.JS.ScaleUpPath=function(a,b){var c,d=Math.round;b||(b=1);for(c=a.length;c--;){var f=a[c];f.X=d(f.X*b);f.Y=d(f.Y*b)}};d.JS.ScaleUpPaths=function(a,b){var c,
756d,f=Math.round;b||(b=1);for(c=a.length;c--;)for(d=a[c].length;d--;){var g=a[c][d];g.X=f(g.X*b);g.Y=f(g.Y*b)}};d.ExPolygons=function(){return[]};d.ExPolygon=function(){this.holes=this.outer=null};d.JS.AddOuterPolyNodeToExPolygons=function(a,b){var c=new d.ExPolygon;c.outer=a.Contour();var e=a.Childs(),f=e.length;c.holes=Array(f);var g,h;for(g=0;g<f;g++){var k=e[g];c.holes[g]=k.Contour();var l=0;var n=k.Childs();for(h=n.length;l<h;l++)k=n[l],d.JS.AddOuterPolyNodeToExPolygons(k,b)}b.push(c)};d.JS.ExPolygonsToPaths=
757function(a){var b,c,e=new d.Paths;var f=0;for(b=a.length;f<b;f++){e.push(a[f].outer);var g=0;for(c=a[f].holes.length;g<c;g++)e.push(a[f].holes[g])}return e};d.JS.PolyTreeToExPolygons=function(a){var b=new d.ExPolygons,c;var e=0;var f=a.Childs();for(c=f.length;e<c;e++)a=f[e],d.JS.AddOuterPolyNodeToExPolygons(a,b);return b}})();
758
759/*
760 * lightgl.js
761 * http://github.com/evanw/lightgl.js/
762 *
763 * Copyright 2011 Evan Wallace
764 * Released under the MIT license
765 */
766var GL=function(){var t;var r={create:function(r){r=r||{};var a=document.createElement("canvas");a.width=800;a.height=600;if(!("alpha"in r))r.alpha=false;try{t=a.getContext("webgl",r)}catch(o){}try{t=t||a.getContext("experimental-webgl",r)}catch(o){}if(!t)throw new Error("WebGL not supported");t.HALF_FLOAT_OES=36193;e();i();n();u();return t},keys:{},Matrix:c,Indexer:h,Buffer:m,Mesh:d,HitTest:p,Raytracer:x,Shader:E,Texture:_,Vector:P};function e(){t.MODELVIEW=f|1;t.PROJECTION=f|2;var r=new c;var e=new c;t.modelviewMatrix=new c;t.projectionMatrix=new c;var i=[];var n=[];var a,o;t.matrixMode=function(r){switch(r){case t.MODELVIEW:a="modelviewMatrix";o=i;break;case t.PROJECTION:a="projectionMatrix";o=n;break;default:throw new Error("invalid matrix mode "+r)}};t.loadIdentity=function(){c.identity(t[a])};t.loadMatrix=function(r){var e=r.m,i=t[a].m;for(var n=0;n<16;n++){i[n]=e[n]}};t.multMatrix=function(r){t.loadMatrix(c.multiply(t[a],r,e))};t.perspective=function(e,i,n,a){t.multMatrix(c.perspective(e,i,n,a,r))};t.frustum=function(e,i,n,a,o,s){t.multMatrix(c.frustum(e,i,n,a,o,s,r))};t.ortho=function(e,i,n,a,o,s){t.multMatrix(c.ortho(e,i,n,a,o,s,r))};t.scale=function(e,i,n){t.multMatrix(c.scale(e,i,n,r))};t.translate=function(e,i,n){t.multMatrix(c.translate(e,i,n,r))};t.rotate=function(e,i,n,a){t.multMatrix(c.rotate(e,i,n,a,r))};t.lookAt=function(e,i,n,a,o,s,u,f,l){t.multMatrix(c.lookAt(e,i,n,a,o,s,u,f,l,r))};t.pushMatrix=function(){o.push(Array.prototype.slice.call(t[a].m))};t.popMatrix=function(){var r=o.pop();t[a].m=l?new Float32Array(r):r};t.project=function(r,e,i,n,a,o){n=n||t.modelviewMatrix;a=a||t.projectionMatrix;o=o||t.getParameter(t.VIEWPORT);var s=a.transformPoint(n.transformPoint(new P(r,e,i)));return new P(o[0]+o[2]*(s.x*.5+.5),o[1]+o[3]*(s.y*.5+.5),s.z*.5+.5)};t.unProject=function(i,n,a,o,s,u){o=o||t.modelviewMatrix;s=s||t.projectionMatrix;u=u||t.getParameter(t.VIEWPORT);
766var f=new P((i-u[0])/u[2]*2-1,(n-u[1])/u[3]*2-1,a*2-1);return c.inverse(c.multiply(s,o,r),e).transformPoint(f)};t.matrixMode(t.MODELVIEW)}function i(){var r={mesh:new d({coords:true,colors:true,triangles:false}),mode:-1,coord:[0,0,0,0],color:[1,1,1,1],pointSize:1,shader:new E("uniform float pointSize;varying vec4 color;varying vec4 coord;void main(){color=gl_Color;coord=gl_TexCoord;gl_Position=gl_ModelViewProjectionMatrix*gl_Vertex;gl_PointSize=pointSize;}","uniform sampler2D texture;uniform float pointSize;uniform bool useTexture;varying vec4 color;varying vec4 coord;void main(){gl_FragColor=color;if(useTexture)gl_FragColor*=texture2D(texture,coord.xy);}")};t.pointSize=function(t){r.shader.uniforms({pointSize:t})};t.begin=function(t){if(r.mode!=-1)throw new Error("mismatched gl.begin() and gl.end() calls");r.mode=t;r.mesh.colors=[];r.mesh.coords=[];r.mesh.vertices=[]};t.color=function(t,e,i,n){r.color=arguments.length==1?t.toArray().concat(1):[t,e,i,n||1]};t.texCoord=function(t,e){r.coord=arguments.length==1?t.toArray(2):[t,e]};t.vertex=function(t,e,i){r.mesh.colors.push(r.color);r.mesh.coords.push(r.coord);r.mesh.vertices.push(arguments.length==1?t.toArray():[t,e,i])};t.end=function(){if(r.mode==-1)throw new Error("mismatched gl.begin() and gl.end() calls");r.mesh.compile();r.shader.uniforms({useTexture:!!t.getParameter(t.TEXTURE_BINDING_2D)}).draw(r.mesh,r.mode);r.mode=-1}}function n(){var r=t,e=0,i=0,n={},a=false;var u=Object.prototype.hasOwnProperty;function f(){for(var t in n){if(u.call(n,t)&&n[t])return true}return false}function l(r){var n={};for(var o in r){if(typeof r[o]=="function"){n[o]=function(t){return function(){t.apply(r,arguments)}}(r[o])}else{n[o]=r[o]}}n.original=r;n.x=n.pageX;n.y=n.pageY;for(var s=t.canvas;s;s=s.offsetParent){n.x-=s.offsetLeft;n.y-=s.offsetTop}if(a){n.deltaX=n.x-e;n.deltaY=n.y-i}else{n.deltaX=0;n.deltaY=0;a=true}e=n.x;i=n.y;n.dragging=f();n.preventDefault=function(){n.original.preventDefault()};n.stopPropagation=function(){n.original.stopPropagation()};return n}function c(e){t=r;if(!f()){o(document,"mousemove",h);o(document,"mouseup",m);s(t.canvas,"mousemove",h);s(t.canvas,"mouseup",m)}n[e.which]=true;e=l(e);if(t.onmousedown)t.onmousedown(e);e.preventDefault()}function h(e){t=r;e=l(e);if(t.onmousemove)t.onmousemove(e);e.preventDefault()}function m(e){t=r;n[e.which]=false;if(!f()){s(document,"mousemove",h);s(document,"mouseup",m);o(t.canvas,"mousemove",h);o(t.canvas,"mouseup",m)}e=l(e);if(t.onmouseup)t.onmouseup(e);e.preventDefault()}function d(){a=false}function v(){n={};a=false}o(t.canvas,"mousedown",c);o(t.canvas,"mousemove",h);o(t.canvas,"mouseup",m);o(t.canvas,"mouseover",d);o(t.canvas,"mouseout",d);o(document,"contextmenu",v)}function a(t){var r={8:"BACKSPACE",9:"TAB",13:"ENTER",16:"SHIFT",27:"ESCAPE",32:"SPACE",37:"LEFT",38:"UP",39:"RIGHT",40:"DOWN"};return r[t]||(t>=65&&t<=90?String.fromCharCode(t):null)}function o(t,r,e){t.addEventListener(r,e)}function s(t,r,e){t.removeEventListener(r,e)}o(document,"keydown",function(t){if(!t.altKey&&!t.ctrlKey&&!t.metaKey){var e=a(t.keyCode);if(e)r.keys[e]=true;r.keys[t.keyCode]=true}});o(document,"keyup",function(t){if(!t.altKey&&!t.ctrlKey&&!t.metaKey){var e=a(t.keyCode);if(e)r.keys[e]=false;r.keys[t.keyCode]=false}});function u(){(function(r){t.makeCurrent=function(){t=r}})(t);t.animate=function(){var r=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(t){setTimeout(t,1e3/60)};var e=(new Date).getTime();var i=t;function n(){t=i;var a=(new Date).getTime();if(t.onupdate)t.onupdate((a-e)/1e3);if(t.ondraw)t.ondraw();r(n);e=a}n()};t.fullscreen=function(r){r=r||{};var e=r.paddingTop||0;var i=r.paddingLeft||0;var n=r.paddingRight||0;var a=r.paddingBottom||0;if(!document.body){throw new Error("document.body doesn't exist yet (call gl.fullscreen() from "+"window.onload() or from inside the <body> tag)")}document.body.appendChild(t.canvas);document.body.style.overflow="hidden";t.canvas.style.position="absolute";t.canvas.style.left=i+"px";t.canvas.style.top=e+"px";function s(){t.canvas.width=window.innerWidth-i-n;t.canvas.height=window.innerHeight-e-a;t.viewport(0,0,t.canvas.width,t.canvas.height);if(r.camera||!("camera"in r)){t.matrixMode(t.PROJECTION);t.loadIdentity();t.perspective(r.fov||45,t.canvas.width/t.canvas.height,r.near||.1,r.far||1e3);t.matrixMode(t.MODELVIEW)}if(t.ondraw)t.ondraw()}o(window,"resize",s);s()}}var f=305397760;var l=typeof Float32Array!="undefined";function c(){var t=Array.prototype.concat.apply([],arguments);if(!t.length){t=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}this.m=l?new Float32Array(t):t}c.prototype={inverse:function(){return c.inverse(this,new c)},transpose:function(){return c.transpose(this,new c)},multiply:function(t){return c.multiply(this,t,new c)},transformPoint:function(t){var r=this.m;return new P(r[0]*t.x+r[1]*t.y+r[2]*t.z+r[3],r[4]*t.x+r[5]*t.y+r[6]*t.z+r[7],r[8]*t.x+r[9]*t.y+r[10]*t.z+r[11]).divide(r[12]*t.x+r[13]*t.y+r[14]*t.z+r[15])},transformVector:function(t){var r=this.m;return new P(r[0]*t.x+r[1]*t.y+r[2]*t.z,r[4]*t.x+r[5]*t.y+r[6]*t.z,r[8]*t.x+r[9]*t.y+r[10]*t.z)}};c.inverse=function(t,r){r=r||new c;var e=t.m,i=r.m;i[0]=e[5]*e[10]*e[15]-e[5]*e[14]*e[11]-e[6]*e[9]*e[15]+e[6]*e[13]*e[11]+e[7]*e[9]*e[14]-e[7]*e[13]*e[10];i[1]=-e[1]*e[10]*e[15]+e[1]*e[14]*e[11]+e[2]*e[9]*e[15]-e[2]*e[13]*e[11]-e[3]*e[9]*e[14]+e[3]*e[13]*e[10];i[2]=e[1]*e[6]*e[15]-e[1]*e[14]*e[7]-e[2]*e[5]*e[15]+e[2]*e[13]*e[7]+e[3]*e[5]*e[14]-e[3]*e[13]*e[6];i[3]=-e[1]*e[6]*e[11]+e[1]*e[10]*e[7]+e[2]*e[5]*e[11]-e[2]*e[9]*e[7]-e[3]*e[5]*e[10]+e[3]*e[9]*e[6];i[4]=-e[4]*e[10]*e[15]+e[4]*e[14]*e[11]+e[6]*e[8]*e[15]-e[6]*e[12]*e[11]-e[7]*e[8]*e[14]+e[7]*e[12]*e[10];i[5]=e[0]*e[10]*e[15]-e[0]*e[14]*e[11]-e[2]*e[8]*e[15]+e[2]*e[12]*e[11]+e[3]*e[8]*e[14]-e[3]*e[12]*e[10];i[6]=-e[0]*e[6]*e[15]+e[0]*e[14]*e[7]+e[2]*e[4]*e[15]-e[2]*e[12]*e[7]-e[3]*e[4]*e[14]+e[3]*e[12]*e[6];i[7]=e[0]*e[6]*e[11]-e[0]*e[10]*e[7]-e[2]*e[4]*e[11]+e[2]*e[8]*e[7]+e[3]*e[4]*e[10]-e[3]*e[8]*e[6];i[8]=e[4]*e[9]*e[15]-e[4]*e[13]*e[11]-e[5]*e[8]*e[15]+e[5]*e[12]*e[11]+e[7]*e[8]*e[13]-e[7]*e[12]*e[9];i[9]=-e[0]*e[9]*e[15]+e[0]*e[13]*e[11]+e[1]*e[8]*e[15]-e[1]*e[12]*e[11]-e[3]*e[8]*e[13]+e[3]*e[12]*e[9];i[10]=e[0]*e[5]*e[15]-e[0]*e[13]*e[7]-e[1]*e[4]*e[15]+e[1]*e[12]*e[7]+e[3]*e[4]*e[13]-e[3]*e[12]*e[5];i[11]=-e[0]*e[5]*e[11]+e[0]*e[9]*e[7]+e[1]*e[4]*e[11]-e[1]*e[8]*e[7]-e[3]*e[4]*e[9]+e[3]*e[8]*e[5];i[12]=-e[4]*e[9]*e[14]+e[4]*e[13]*e[10]+e[5]*e[8]*e[14]-e[5]*e[12]*e[10]-e[6]*e[8]*e[13]+e[6]*e[12]*e[9];i[13]=e[0]*e[9]*e[14]-e[0]*e[13]*e[10]-e[1]*e[8]*e[14]+e[1]*e[12]*e[10]+e[2]*e[8]*e[13]-e[2]*e[12]*e[9];i[14]=-e[0]*e[5]*e[14]+e[0]*e[13]*e[6]+e[1]*e[4]*e[14]-e[1]*e[12]*e[6]-e[2]*e[4]*e[13]+e[2]*e[12]*e[5];i[15]=e[0]*e[5]*e[10]-e[0]*e[9]*e[6]-e[1]*e[4]*e[10]+e[1]*e[8]*e[6]+e[2]*e[4]*e[9]-e[2]*e[8]*e[5];var n=e[0]*i[0]+e[1]*i[4]+e[2]*i[8]+e[3]*i[12];for(var a=0;a<16;a++)i[a]/=n;return r};c.transpose=function(t,r){r=r||new c;var e=t.m,i=r.m;i[0]=e[0];i[1]=e[4];i[2]=e[8];i[3]=e[12];i[4]=e[1];i[5]=e[5];i[6]=e[9];i[7]=e[13];i[8]=e[2];i[9]=e[6];i[10]=e[10];i[11]=e[14];i[12]=e[3];i[13]=e[7];i[14]=e[11];i[15]=e[15];return r};c.multiply=function(t,r,e){e=e||new c;var i=t.m,n=r.m,a=e.m;a[0]=i[0]*n[0]+i[1]*n[4]+i[2]*n[8]+i[3]*n[12];a[1]=i[0]*n[1]+i[1]*n[5]+i[2]*n[9]+i[3]*n[13];a[2]=i[0]*n[2]+i[1]*n[6]+i[2]*n[10]+i[3]*n[14];a[3]=i[0]*n[3]+i[1]*n[7]+i[2]*n[11]+i[3]*n[15];a[4]=i[4]*n[0]+i[5]*n[4]+i[6]*n[8]+i[7]*n[12];
766a[5]=i[4]*n[1]+i[5]*n[5]+i[6]*n[9]+i[7]*n[13];a[6]=i[4]*n[2]+i[5]*n[6]+i[6]*n[10]+i[7]*n[14];a[7]=i[4]*n[3]+i[5]*n[7]+i[6]*n[11]+i[7]*n[15];a[8]=i[8]*n[0]+i[9]*n[4]+i[10]*n[8]+i[11]*n[12];a[9]=i[8]*n[1]+i[9]*n[5]+i[10]*n[9]+i[11]*n[13];a[10]=i[8]*n[2]+i[9]*n[6]+i[10]*n[10]+i[11]*n[14];a[11]=i[8]*n[3]+i[9]*n[7]+i[10]*n[11]+i[11]*n[15];a[12]=i[12]*n[0]+i[13]*n[4]+i[14]*n[8]+i[15]*n[12];a[13]=i[12]*n[1]+i[13]*n[5]+i[14]*n[9]+i[15]*n[13];a[14]=i[12]*n[2]+i[13]*n[6]+i[14]*n[10]+i[15]*n[14];a[15]=i[12]*n[3]+i[13]*n[7]+i[14]*n[11]+i[15]*n[15];return e};c.identity=function(t){t=t||new c;var r=t.m;r[0]=r[5]=r[10]=r[15]=1;r[1]=r[2]=r[3]=r[4]=r[6]=r[7]=r[8]=r[9]=r[11]=r[12]=r[13]=r[14]=0;return t};c.perspective=function(t,r,e,i,n){var a=Math.tan(t*Math.PI/360)*e;var o=a*r;return c.frustum(-o,o,-a,a,e,i,n)};c.frustum=function(t,r,e,i,n,a,o){o=o||new c;var s=o.m;s[0]=2*n/(r-t);s[1]=0;s[2]=(r+t)/(r-t);s[3]=0;s[4]=0;s[5]=2*n/(i-e);s[6]=(i+e)/(i-e);s[7]=0;s[8]=0;s[9]=0;s[10]=-(a+n)/(a-n);s[11]=-2*a*n/(a-n);s[12]=0;s[13]=0;s[14]=-1;s[15]=0;return o};c.ortho=function(t,r,e,i,n,a,o){o=o||new c;var s=o.m;s[0]=2/(r-t);s[1]=0;s[2]=0;s[3]=-(r+t)/(r-t);s[4]=0;s[5]=2/(i-e);s[6]=0;s[7]=-(i+e)/(i-e);s[8]=0;s[9]=0;s[10]=-2/(a-n);s[11]=-(a+n)/(a-n);s[12]=0;s[13]=0;s[14]=0;s[15]=1;return o};c.scale=function(t,r,e,i){i=i||new c;var n=i.m;n[0]=t;n[1]=0;n[2]=0;n[3]=0;n[4]=0;n[5]=r;n[6]=0;n[7]=0;n[8]=0;n[9]=0;n[10]=e;n[11]=0;n[12]=0;n[13]=0;n[14]=0;n[15]=1;return i};c.translate=function(t,r,e,i){i=i||new c;var n=i.m;n[0]=1;n[1]=0;n[2]=0;n[3]=t;n[4]=0;n[5]=1;n[6]=0;n[7]=r;n[8]=0;n[9]=0;n[10]=1;n[11]=e;n[12]=0;n[13]=0;n[14]=0;n[15]=1;return i};c.rotate=function(t,r,e,i,n){if(!t||!r&&!e&&!i){return c.identity(n)}n=n||new c;var a=n.m;var o=Math.sqrt(r*r+e*e+i*i);t*=Math.PI/180;r/=o;e/=o;i/=o;var s=Math.cos(t),u=Math.sin(t),f=1-s;a[0]=r*r*f+s;a[1]=r*e*f-i*u;a[2]=r*i*f+e*u;a[3]=0;a[4]=e*r*f+i*u;a[5]=e*e*f+s;a[6]=e*i*f-r*u;a[7]=0;a[8]=i*r*f-e*u;a[9]=i*e*f+r*u;a[10]=i*i*f+s;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return n};c.lookAt=function(t,r,e,i,n,a,o,s,u,f){f=f||new c;var l=f.m;var h=new P(t,r,e);var m=new P(i,n,a);var d=new P(o,s,u);var v=h.subtract(m).unit();var g=d.cross(v).unit();var p=v.cross(g).unit();l[0]=g.x;l[1]=g.y;l[2]=g.z;l[3]=-g.dot(h);l[4]=p.x;l[5]=p.y;l[6]=p.z;l[7]=-p.dot(h);l[8]=v.x;l[9]=v.y;l[10]=v.z;l[11]=-v.dot(h);l[12]=0;l[13]=0;l[14]=0;l[15]=1;return f};function h(){this.unique=[];this.indices=[];this.map={}}h.prototype={add:function(t){var r=JSON.stringify(t);if(!(r in this.map)){this.map[r]=this.unique.length;this.unique.push(t)}return this.map[r]}};function m(t,r){this.buffer=null;this.target=t;this.type=r;this.data=[]}m.prototype={compile:function(r){var e=[];for(var i=0,n=1e4;i<this.data.length;i+=n){e=Array.prototype.concat.apply(e,this.data.slice(i,i+n))}var a=this.data.length?e.length/this.data.length:0;if(a!=Math.round(a))throw new Error("buffer elements not of consistent size, average size is "+a);this.buffer=this.buffer||t.createBuffer();this.buffer.length=e.length;this.buffer.spacing=a;t.bindBuffer(this.target,this.buffer);t.bufferData(this.target,new this.type(e),r||t.STATIC_DRAW)}};function d(t){t=t||{};this.vertexBuffers={};this.indexBuffers={};this.addVertexBuffer("vertices","gl_Vertex");if(t.coords)this.addVertexBuffer("coords","gl_TexCoord");if(t.normals)this.addVertexBuffer("normals","gl_Normal");if(t.colors)this.addVertexBuffer("colors","gl_Color");if(!("triangles"in t)||t.triangles)this.addIndexBuffer("triangles");if(t.lines)this.addIndexBuffer("lines")}d.prototype={addVertexBuffer:function(r,e){var i=this.vertexBuffers[e]=new m(t.ARRAY_BUFFER,Float32Array);i.name=r;this[r]=[]},addIndexBuffer:function(r){var e=this.indexBuffers[r]=new m(t.ELEMENT_ARRAY_BUFFER,Uint16Array);this[r]=[]},compile:function(){for(var t in this.vertexBuffers){var r=this.vertexBuffers[t];r.data=this[r.name];r.compile()}for(var e in this.indexBuffers){var r=this.indexBuffers[e];r.data=this[e];r.compile()}},transform:function(t){this.vertices=this.vertices.map(function(r){return t.transformPoint(P.fromArray(r)).toArray()});if(this.normals){var r=t.inverse().transpose();this.normals=this.normals.map(function(t){return r.transformVector(P.fromArray(t)).unit().toArray()})}this.compile();return this},computeNormals:function(){if(!this.normals)this.addVertexBuffer("normals","gl_Normal");for(var t=0;t<this.vertices.length;t++){this.normals[t]=new P}for(var t=0;t<this.triangles.length;t++){var r=this.triangles[t];var e=P.fromArray(this.vertices[r[0]]);var i=P.fromArray(this.vertices[r[1]]);var n=P.fromArray(this.vertices[r[2]]);var a=i.subtract(e).cross(n.subtract(e)).unit();this.normals[r[0]]=this.normals[r[0]].add(a);this.normals[r[1]]=this.normals[r[1]].add(a);this.normals[r[2]]=this.normals[r[2]].add(a)}for(var t=0;t<this.vertices.length;t++){this.normals[t]=this.normals[t].unit().toArray()}this.compile();return this},computeWireframe:function(){var t=new h;for(var r=0;r<this.triangles.length;r++){var e=this.triangles[r];for(var i=0;i<e.length;i++){var n=e[i],a=e[(i+1)%e.length];t.add([Math.min(n,a),Math.max(n,a)])}}if(!this.lines)this.addIndexBuffer("lines");this.lines=t.unique;this.compile();return this},getAABB:function(){var t={min:new P(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE)};t.max=t.min.negative();for(var r=0;r<this.vertices.length;r++){var e=P.fromArray(this.vertices[r]);t.min=P.min(t.min,e);t.max=P.max(t.max,e)}return t},getBoundingSphere:function(){var t=this.getAABB();var r={center:t.min.add(t.max).divide(2),radius:0};for(var e=0;e<this.vertices.length;
766e++){r.radius=Math.max(r.radius,P.fromArray(this.vertices[e]).subtract(r.center).length())}return r}};d.plane=function(t){t=t||{};var r=new d(t);detailX=t.detailX||t.detail||1;detailY=t.detailY||t.detail||1;for(var e=0;e<=detailY;e++){var i=e/detailY;for(var n=0;n<=detailX;n++){var a=n/detailX;r.vertices.push([2*a-1,2*i-1,0]);if(r.coords)r.coords.push([a,i]);if(r.normals)r.normals.push([0,0,1]);if(n<detailX&&e<detailY){var o=n+e*(detailX+1);r.triangles.push([o,o+1,o+detailX+1]);r.triangles.push([o+detailX+1,o+1,o+detailX+2])}}}r.compile();return r};var v=[[0,4,2,6,-1,0,0],[1,3,5,7,+1,0,0],[0,1,4,5,0,-1,0],[2,6,3,7,0,+1,0],[0,2,1,3,0,0,-1],[4,5,6,7,0,0,+1]];function g(t){return new P((t&1)*2-1,(t&2)-1,(t&4)/2-1)}d.cube=function(t){var r=new d(t);for(var e=0;e<v.length;e++){var i=v[e],n=e*4;for(var a=0;a<4;a++){var o=i[a];r.vertices.push(g(o).toArray());if(r.coords)r.coords.push([a&1,(a&2)/2]);if(r.normals)r.normals.push(i.slice(4,7))}r.triangles.push([n,n+1,n+2]);r.triangles.push([n+2,n+1,n+3])}r.compile();return r};d.sphere=function(t){function r(t,r,e){return s?[t,e,r]:[t,r,e]}function e(t){return t+(t-t*t)/2}t=t||{};var i=new d(t);var n=new h;detail=t.detail||6;for(var a=0;a<8;a++){var o=g(a);var s=o.x*o.y*o.z>0;var u=[];for(var f=0;f<=detail;f++){for(var l=0;f+l<=detail;l++){var c=f/detail;var m=l/detail;var v=(detail-f-l)/detail;var p={vertex:new P(e(c),e(m),e(v)).unit().multiply(o).toArray()};if(i.coords)p.coord=o.y>0?[1-c,v]:[v,1-c];u.push(n.add(p))}if(f>0){for(var l=0;f+l<=detail;l++){var c=(f-1)*(detail+1)+(f-1-(f-1)*(f-1))/2+l;var m=f*(detail+1)+(f-f*f)/2+l;i.triangles.push(r(u[c],u[c+1],u[m]));if(f+l<detail){i.triangles.push(r(u[m],u[c+1],u[m+1]))}}}}}i.vertices=n.unique.map(function(t){return t.vertex});if(i.coords)i.coords=n.unique.map(function(t){return t.coord});if(i.normals)i.normals=i.vertices;i.compile();return i};d.load=function(t,r){r=r||{};if(!("coords"in r))r.coords=!!t.coords;if(!("normals"in r))r.normals=!!t.normals;if(!("colors"in r))r.colors=!!t.colors;if(!("triangles"in r))r.triangles=!!t.triangles;if(!("lines"in r))r.lines=!!t.lines;var e=new d(r);e.vertices=t.vertices;if(e.coords)e.coords=t.coords;if(e.normals)e.normals=t.normals;if(e.colors)e.colors=t.colors;if(e.triangles)e.triangles=t.triangles;if(e.lines)e.lines=t.lines;e.compile();return e};function p(t,r,e){this.t=arguments.length?t:Number.MAX_VALUE;this.hit=r;this.normal=e}p.prototype={mergeWith:function(t){if(t.t>0&&t.t<this.t){this.t=t.t;this.hit=t.hit;this.normal=t.normal}}};function x(){var r=t.getParameter(t.VIEWPORT);var e=t.modelviewMatrix.m;var i=new P(e[0],e[4],e[8]);var n=new P(e[1],e[5],e[9]);var a=new P(e[2],e[6],e[10]);var o=new P(e[3],e[7],e[11]);this.eye=new P((-o.dot(i)),(-o.dot(n)),(-o.dot(a)));var s=r[0],u=s+r[2];var f=r[1],l=f+r[3];this.ray00=t.unProject(s,f,1).subtract(this.eye);this.ray10=t.unProject(u,f,1).subtract(this.eye);this.ray01=t.unProject(s,l,1).subtract(this.eye);this.ray11=t.unProject(u,l,1).subtract(this.eye);this.viewport=r}x.prototype={getRayForPixel:function(t,r){t=(t-this.viewport[0])/this.viewport[2];r=1-(r-this.viewport[1])/this.viewport[3];var e=P.lerp(this.ray00,this.ray10,t);var i=P.lerp(this.ray01,this.ray11,t);return P.lerp(e,i,r).unit()}};x.hitTestBox=function(t,r,e,i){var n=e.subtract(t).divide(r);var a=i.subtract(t).divide(r);var o=P.min(n,a);var s=P.max(n,a);var u=o.max();var f=s.min();if(u>0&&u<f){var l=1e-6,c=t.add(r.multiply(u));e=e.add(l);i=i.subtract(l);return new p(u,c,new P((c.x>i.x)-(c.x<e.x),(c.y>i.y)-(c.y<e.y),(c.z>i.z)-(c.z<e.z)))}return null};x.hitTestSphere=function(t,r,e,i){var n=t.subtract(e);var a=r.dot(r);var o=2*r.dot(n);var s=n.dot(n)-i*i;var u=o*o-4*a*s;if(u>0){var f=(-o-Math.sqrt(u))/(2*a),l=t.add(r.multiply(f));return new p(f,l,l.subtract(e).divide(i))}return null};x.hitTestTriangle=function(t,r,e,i,n){var a=i.subtract(e);var o=n.subtract(e);var s=a.cross(o).unit();var u=s.dot(e.subtract(t))/s.dot(r);if(u>0){var f=t.add(r.multiply(u));var l=f.subtract(e);var c=o.dot(o);var h=o.dot(a);var m=o.dot(l);var d=a.dot(a);var v=a.dot(l);var g=c*d-h*h;var x=(d*m-h*v)/g;var y=(c*v-h*m)/g;if(x>=0&&y>=0&&x+y<=1)return new p(u,f,s)}return null};function y(t,r,e){while((result=t.exec(r))!=null){e(result)}}var w="LIGHTGL";function E(r,e){function i(t){var r=document.getElementById(t);return r?r.text:t}r=i(r);e=i(e);var n="uniform mat3 gl_NormalMatrix;uniform mat4 gl_ModelViewMatrix;uniform mat4 gl_ProjectionMatrix;uniform mat4 gl_ModelViewProjectionMatrix;uniform mat4 gl_ModelViewMatrixInverse;uniform mat4 gl_ProjectionMatrixInverse;uniform mat4 gl_ModelViewProjectionMatrixInverse;";var a=n+"attribute vec4 gl_Vertex;attribute vec4 gl_TexCoord;attribute vec3 gl_Normal;attribute vec4 gl_Color;vec4 ftransform(){return gl_ModelViewProjectionMatrix*gl_Vertex;}";var o="precision highp float;"+n;var s=r+e;var u={};y(/\b(gl_[^;]*)\b;/g,n,function(t){var r=t[1];if(s.indexOf(r)!=-1){var e=r.replace(/[a-z_]/g,"");u[e]=w+r}});if(s.indexOf("ftransform")!=-1)u.MVPM=w+"gl_ModelViewProjectionMatrix";this.usedMatrices=u;function f(t,r){var e={};var i=/^((\s*\/\/.*\n|\s*#extension.*\n)+)[^]*$/.exec(r);r=i?i[1]+t+r.substr(i[1].length):t+r;y(/\bgl_\w+\b/g,t,function(t){if(!(t in e)){r=r.replace(new RegExp("\\b"+t+"\\b","g"),w+t);e[t]=true}});return r}r=f(a,r);e=f(o,e);function l(r,e){var i=t.createShader(r);t.shaderSource(i,e);t.compileShader(i);if(!t.getShaderParameter(i,t.COMPILE_STATUS)){throw new Error("compile error: "+t.getShaderInfoLog(i))}return i}this.program=t.createProgram();t.attachShader(this.program,l(t.VERTEX_SHADER,r));t.attachShader(this.program,l(t.FRAGMENT_SHADER,e));t.linkProgram(this.program);if(!t.getProgramParameter(this.program,t.LINK_STATUS)){throw new Error("link error: "+t.getProgramInfoLog(this.program))}this.attributes={};this.uniformLocations={};var c={};y(/uniform\s+sampler(1D|2D|3D|Cube)\s+(\w+)\s*;/g,r+e,function(t){c[t[2]]=1});this.isSampler=c}function M(t){var r=Object.prototype.toString.call(t);return r=="[object Array]"||r=="[object Float32Array]"}function b(t){var r=Object.prototype.toString.call(t);return r=="[object Number]"||r=="[object Boolean]"}var T=new c;var A=new c;E.prototype={uniforms:function(r){t.useProgram(this.program);for(var e in r){var i=this.uniformLocations[e]||t.getUniformLocation(this.program,e);if(!i)continue;this.uniformLocations[e]=i;var n=r[e];if(n instanceof P){n=[n.x,n.y,n.z]}else if(n instanceof c){n=n.m}if(M(n)){switch(n.length){case 1:t.uniform1fv(i,new Float32Array(n));break;case 2:t.uniform2fv(i,new Float32Array(n));break;case 3:t.uniform3fv(i,new Float32Array(n));break;case 4:t.uniform4fv(i,new Float32Array(n));break;case 9:t.uniformMatrix3fv(i,false,new Float32Array([n[0],n[3],n[6],n[1],n[4],n[7],n[2],n[5],n[8]]));break;case 16:t.uniformMatrix4fv(i,false,new Float32Array([n[0],n[4],n[8],n[12],n[1],n[5],n[9],n[13],n[2],n[6],n[10],n[14],n[3],n[7],n[11],n[15]]));break;default:throw new Error("don't know how to load uniform \""+e+'" of length '+n.length)}}else if(b(n)){(this.isSampler[e]?t.uniform1i:t.uniform1f).call(t,i,n)}else{throw new Error('attempted to set uniform "'+e+'" to invali
766d value '+n)}}return this},draw:function(r,e){this.drawBuffers(r.vertexBuffers,r.indexBuffers[e==t.LINES?"lines":"triangles"],arguments.length<2?t.TRIANGLES:e)},drawBuffers:function(r,e,i){var n=this.usedMatrices;var a=t.modelviewMatrix;var o=t.projectionMatrix;var s=n.MVMI||n.NM?a.inverse():null;var u=n.PMI?o.inverse():null;var f=n.MVPM||n.MVPMI?o.multiply(a):null;var l={};if(n.MVM)l[n.MVM]=a;if(n.MVMI)l[n.MVMI]=s;if(n.PM)l[n.PM]=o;if(n.PMI)l[n.PMI]=u;if(n.MVPM)l[n.MVPM]=f;if(n.MVPMI)l[n.MVPMI]=f.inverse();if(n.NM){var c=s.m;l[n.NM]=[c[0],c[4],c[8],c[1],c[5],c[9],c[2],c[6],c[10]]}this.uniforms(l);var h=0;for(var m in r){var d=r[m];var v=this.attributes[m]||t.getAttribLocation(this.program,m.replace(/^(gl_.*)$/,w+"$1"));if(v==-1||!d.buffer)continue;this.attributes[m]=v;t.bindBuffer(t.ARRAY_BUFFER,d.buffer);t.enableVertexAttribArray(v);t.vertexAttribPointer(v,d.buffer.spacing,t.FLOAT,false,0,0);h=d.buffer.length/d.buffer.spacing}for(var m in this.attributes){if(!(m in r)){t.disableVertexAttribArray(this.attributes[m])}}if(h&&(!e||e.buffer)){if(e){t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,e.buffer);t.drawElements(i,e.buffer.length,t.UNSIGNED_SHORT,0)}else{t.drawArrays(i,0,h)}}return this}};function _(r,e,i){i=i||{};this.id=t.createTexture();this.width=r;this.height=e;this.format=i.format||t.RGBA;this.type=i.type||t.UNSIGNED_BYTE;var n=i.filter||i.magFilter||t.LINEAR;var a=i.filter||i.minFilter||t.LINEAR;if(this.type===t.FLOAT){if(!_.canUseFloatingPointTextures()){throw new Error("OES_texture_float is required but not supported")}if((a!==t.NEAREST||n!==t.NEAREST)&&!_.canUseFloatingPointLinearFiltering()){throw new Error("OES_texture_float_linear is required but not supported")}}else if(this.type===t.HALF_FLOAT_OES){if(!_.canUseHalfFloatingPointTextures()){throw new Error("OES_texture_half_float is required but not supported")}if((a!==t.NEAREST||n!==t.NEAREST)&&!_.canUseHalfFloatingPointLinearFiltering()){throw new Error("OES_texture_half_float_linear is required but not supported")}}t.bindTexture(t.TEXTURE_2D,this.id);t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,1);t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,n);t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,a);t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,i.wrap||i.wrapS||t.CLAMP_TO_EDGE);t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,i.wrap||i.wrapT||t.CLAMP_TO_EDGE);t.texImage2D(t.TEXTURE_2D,0,this.format,r,e,0,this.format,this.type,i.data||null)}var R;var F;var z;_.prototype={bind:function(r){t.activeTexture(t.TEXTURE0+(r||0));t.bindTexture(t.TEXTURE_2D,this.id)},unbind:function(r){t.activeTexture(t.TEXTURE0+(r||0));t.bindTexture(t.TEXTURE_2D,null)},canDrawTo:function(){R=R||t.createFramebuffer();t.bindFramebuffer(t.FRAMEBUFFER,R);t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.id,0);var r=t.checkFramebufferStatus(t.FRAMEBUFFER)==t.FRAMEBUFFER_COMPLETE;t.bindFramebuffer(t.FRAMEBUFFER,null);return r},drawTo:function(r){var e=t.getParameter(t.VIEWPORT);R=R||t.createFramebuffer();F=F||t.createRenderbuffer();t.bindFramebuffer(t.FRAMEBUFFER,R);t.bindRenderbuffer(t.RENDERBUFFER,F);if(this.width!=F.width||this.height!=F.height){F.width=this.width;F.height=this.height;t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_COMPONENT16,this.width,this.height)}t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.id,0);t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,F);if(t.checkFramebufferStatus(t.FRAMEBUFFER)!=t.FRAMEBUFFER_COMPLETE){throw new Error("Rendering to this texture is not supported (incomplete framebuffer)")}t.viewport(0,0,this.width,this.height);r();t.bindFramebuffer(t.FRAMEBUFFER,null);t.bindRenderbuffer(t.RENDERBUFFER,null);t.viewport(e[0],e[1],e[2],e[3])},swapWith:function(t){var r;r=t.id;t.id=this.id;this.id=r;r=t.width;t.width=this.width;this.width=r;r=t.height;t.height=this.height;this.height=r}};_.fromImage=function(r,e){e=e||{};var i=new _(r.width,r.height,e);try{t.texImage2D(t.TEXTURE_2D,0,i.format,i.format,i.type,r)}catch(n){if(location.protocol=="file:"){throw new Error('image not loaded for security reasons (serve this page over "http://" instead)')}else{throw new Error("image not loaded for security reasons (image must originate from the same "+"domain as this page or use Cross-Origin Resource Sharing)")}}if(e.minFilter&&e.minFilter!=t.NEAREST&&e.minFilter!=t.LINEAR){t.generateMipmap(t.TEXTURE_2D)}return i};_.fromURL=function(r,e){z=z||function(){var t=document.createElement("canvas").getContext("2d");t.canvas.width=t.canvas.height=128;for(var r=0;r<t.canvas.height;r+=16){for(var e=0;e<t.canvas.width;e+=16){t.fillStyle=(e^r)&16?"#FFF":"#DDD";t.fillRect(e,r,16,16)}}return t.canvas}();var i=_.fromImage(z,e);var n=new Image;var a=t;n.onload=function(){a.makeCurrent();_.fromImage(n,e).swapWith(i)};n.src=r;return i};_.canUseFloatingPointTextures=function(){return!!t.getExtension("OES_texture_float")};_.canUseFloatingPointLinearFiltering=function(){return!!t.getExtension("OES_texture_float_linear")};_.canUseHalfFloatingPointTextures=function(){return!!t.getExtension("OES_texture_half_float")};_.canUseHalfFloatingPointLinearFiltering=function(){return!!t.getExtension("OES_texture_half_float_linear")};function P(t,r,e){this.x=t||0;this.y=r||0;this.z=e||0}P.prototype={negative:function(){return new P((-this.x),(-this.y),(-this.z))},add:function(t){if(t instanceof P)return new P(this.x+t.x,this.y+t.y,this.z+t.z);else return new P(this.x+t,this.y+t,this.z+t)},subtract:function(t){if(t instanceof P)return new P(this.x-t.x,this.y-t.y,this.z-t.z);else return new P(this.x-t,this.y-t,this.z-t)},multiply:function(t){if(t instanceof P)return new P(this.x*t.x,this.y*t.y,this.z*t.z);else return new P(this.x*t,this.y*t,this.z*t)},divide:function(t){if(t instanceof P)return new P(this.x/t.x,this.y/t.y,this.z/t.z);else return new P(this.x/t,this.y/t,this.z/t)},equals:function(t){return this.x==t.x&&this.y==t.y&&this.z==t.z},dot:function(t){return this.x*t.x+this.y*t.y+this.z*t.z},cross:function(t){return new P(this.y*t.z-this.z*t.y,this.z*t.x-this.x*t.z,this.x*t.y-this.y*t.x)},length:function(){return Math.sqrt(this.dot(this))},unit:function(){return this.divide(this.length())},min:function(){return Math.min(Math.min(this.x,this.y),this.z)},max:function(){return Math.max(Math.max(this.x,this.y),this.z)},toAngles:function(){return{theta:Math.atan2(this.z,this.x),phi:Math.asin(this.y/this.length())}},angleTo:function(t){return Math.acos(this.dot(t)/(this.length()*t.length()))},toArray:function(t){return[this.x,this.y,this.z].slice(0,t||3)},clone:function(){return new P(this.x,this.y,this.z)},init:function(t,r,e){this.x=t;this.y=r;this.z=e;return this}};P.negative=function(t,r){r.x=-t.x;r.y=-t.y;r.z=-t.z;return r};P.add=function(t,r,e){if(r instanceof P){e.x=t.x+r.x;e.y=t.y+r.y;e.z=t.z+r.z}else{e.x=t.x+r;e.y=t.y+r;e.z=t.z+r}return e};P.subtract=function(t,r,e){if(r instanceof P){e.x=t.x-r.x;e.y=t.y-r.y;e.z=t.z-r.z}else{e.x=t.x-r;e.y=t.y-r;e.z=t.z-r}return e};P.multiply=function(t,r,e){if(r instanceof P){e.x=t.x*r.x;e.y=t.y*r.y;e.z=t.z*r.z}else{e.x=t.x*r;e.y=t.y*r;e.z=t.z*r}return e};P.divide=function(t,r,e){if(r instanceof P){e.x=t.x/r.x;e.y=t.y/r.y;e.z=t.z/r.z}else{e.x=t.x/r;e.y=t.y/r;e.z=t.z/r}return e};P.cross=function(t,r,e){e.x=t.y*r.z-t.z*r.y;e.y=t.z*r.x-t.x*r.z;e.z=t.x*r.y-t.y*r.x;return e};P.unit=function(t,r){var e=t.length();r.x=t.x/e;r.y=t.y/e;r.z=t.z/e;return r};P.fromAngles=function(t,r){return new P(Math.cos(t)*Math.cos(r),Math.sin(r),Math.sin(t)*Math.cos(r))};P.randomDirection=function(){return P.fromAngles(Math.random()*Math.PI*2,Math.asin(Math.random()*2-1))};P.min=function(t,r){return new P(Math.min(t.x,r.x),Math.min(t.y,r.y),Math.min(t.z,r.z))};P.max=function(t,r){return new P(Math.max(t.x,r.x),Math.max(t.y,r.y),Math.max(t.z,r.z))};P.lerp=function(t,r,e){return r.subtract(t).multiply(e).add(t)};P.fromArray=function(t){return new P(t[0],t[1],t[2])};P.angleBetween=function(t,r){return t.angleTo(r)};return r}();
767
768!function(e){function t(e,t){return e-t}function n(e,t,n){for(var r=0,o=e.length;o>r;){var i=Math.floor((r+o)/2),s=e[i],a=n(t,s);a>0?r=i+1:o=i}e.splice(r,0,t)}function r(e,t){return e.index-t.index}var o=!1,i=function(){this.polygons=[],this.properties=new i.Properties,this.isCanonicalized=!0,this.isRetesselated=!0};i.defaultResolution2D=32,i.defaultResolution3D=12,i.fromPolygons=function(e){var t=new i;return t.polygons=e,t.isCanonicalized=!1,t.isRetesselated=!1,t},i.fromSlices=function(e){return new i.Polygon.createFromPoints([[0,0,0],[1,0,0],[1,1,0],[0,1,0]]).solidFromSlices(e)},i.fromObject=function(e){var t=e.polygons.map(function(e){return i.Polygon.fromObject(e)}),n=i.fromPolygons(t);return n=n.canonicalized()},i.fromCompactBinary=function(e){if("CSG"!=e["class"])throw new Error("Not a CSG");for(var t=[],n=e.planeData,r=n.length/4,o=0,s,a,l,u,h,c,p=0;r>p;p++)s=n[o++],a=n[o++],l=n[o++],u=n[o++],h=new i.Vector3D(s,a,l),c=new i.Plane(h,u),t.push(c);var f=[],v=e.vertexData,m=v.length/3,d,g;o=0;for(var y=0;m>y;y++)s=v[o++],a=v[o++],l=v[o++],d=new i.Vector3D(s,a,l),g=new i.Vertex(d),f.push(g);var x=e.shared.map(function(e){return i.Polygon.Shared.fromObject(e)}),w=[],P=e.numPolygons,D=e.numVerticesPerPolygon,V=e.polygonVertices,b=e.polygonPlaneIndexe
768s,S=e.polygonSharedIndexes,_,T,z,M;o=0;for(var A=0;P>A;A++){_=D[A],T=[];for(var C=0;_>C;C++)T.push(f[V[o++]]);c=t[b[A]],z=x[S[A]],M=new i.Polygon(T,z,c),w.push(M)}var O=i.fromPolygons(w);return O.isCanonicalized=!0,O.isRetesselated=!0,O},i.prototype={toPolygons:function(){return this.polygons},union:function(e){var t;t=e instanceof Array?e:[e];for(var n=this,r=0;r<t.length;r++){var o=r==t.length-1;n=n.unionSub(t[r],o,o)}return n},unionSub:function(e,t,n){if(this.mayOverlap(e)){var r=new i.Tree(this.polygons),o=new i.Tree(e.polygons);r.clipTo(o,!1),o.clipTo(r),o.invert(),o.clipTo(r),o.invert();var s=r.allPolygons().concat(o.allPolygons()),a=i.fromPolygons(s);return a.properties=this.properties._merge(e.properties),t&&(a=a.reTesselated()),n&&(a=a.canonicalized()),a}return this.unionForNonIntersecting(e)},unionForNonIntersecting:function(e){var t=this.polygons.concat(e.polygons),n=i.fromPolygons(t);return n.properties=this.properties._merge(e.properties),n.isCanonicalized=this.isCanonicalized&&e.isCanonicalized,n.isRetesselated=this.isRetesselated&&e.isRetesselated,n},subtract:function(e){var t;t=e instanceof Array?e:[e];for(var n=this,r=0;r<t.length;r++){var o=r==t.length-1;n=n.subtractSub(t[r],o,o)}return n},subtractSub:function(e,t,n){var r=new i.Tree(this.polygons),o=new i.Tree(e.polygons);r.invert(),r.clipTo(o),o.clipTo(r,!0),r.addPolygons(o.allPolygons()),r.invert();var s=i.fromPolygons(r.allPolygons());return s.properties=this.properties._merge(e.properties),t&&(s=s.reTesselated()),n&&(s=s.canonicalized()),s},intersect:function(e){var t;t=e instanceof Array?e:[e];for(var n=this,r=0;r<t.length;r++){var o=r==t.length-1;n=n.intersectSub(t[r],o,o)}return n},intersectSub:function(e,t,n){var r=new i.Tree(this.polygons),o=new i.Tree(e.polygons);r.invert(),o.clipTo(r),o.invert(),r.clipTo(o),o.clipTo(r),r.addPolygons(o.allPolygons()),r.invert();var s=i.fromPolygons(r.allPolygons());return s.properties=this.properties._merge(e.properties),t&&(s=s.reTesselated()),n&&(s=s.canonicalized()),s},inverse:function(){var e=this.polygons.map(function(e){return e.flipped()});return i.fromPolygons(e)},transform1:function(e){var t=this.polygons.map(function(t){return t.transform(e)}),n=i.fromPolygons(t);return n.properties=this.properties._transform(e),n.isRetesselated=this.isRetesselated,n},transform:function(e){var t=e.isMirroring(),n={},r={},o=this.polygons.map(function(o){var s,a=o.plane,l=a.getTag();l in r?s=r[l]:(s=a.transform(e),r[l]=s);var u=o.vertices.map(function(t){var r,o=t.getTag();return o in n?r=n[o]:(r=t.transform(e),n[o]=r),r});return t&&u.reverse(),new i.Polygon(u,o.shared,s)}),s=i.fromPolygons(o);return s.properties=this.properties._transform(e),s.isRetesselated=this.isRetesselated,s.isCanonicalized=this.isCanonicalized,s},toStlString:function(){var e="solid csg.js\n";return this.polygons.map(function(t){e+=t.toStlString()}),e+="endsolid csg.js\n"},toAMFString:function(e){var t='<?xml version="1.0" encoding="UTF-8"?>\n<amf'+(e&&e.unit?' unit="+m.unit"':"")+">\n";for(var n in e)t+='<metadata type="'+n+'">'+e[n]+"</metadata>\n";t+='<object id="0">\n<mesh>\n<vertices>\n',this.polygons.map(function(e){for(var n=0;n<e.vertices.length;n++)t+=e.vertices[n].toAMFString()}),t+="</vertices>\n";var r=0;return this.polygons.map(function(e){if(t+="<volume>\n",!(e.vertices.length<3)){var n=1,o=.4,i=1,s=1,a=!1;e.shared&&e.shared.color?(n=e.shared.color[0],o=e.shared.color[1],i=e.shared.color[2],s=e.shared.color[3],a=!0):e.color&&(n=e.color[0],o=e.color[1],i=e.color[2],e.color.length()>3&&(s=e.color[3]),a=!0),t+="<color><r>"+n+"</r><g>"+o+"</g><b>"+i+"</b>"+(void 0!==s?"<a>"+s+"</a>":"")+"</color>";for(var l=0;l<e.vertices.length-2;l++)t+="<triangle>",t+="<v1>"+r+"</v1>",t+="<v2>"+(r+l+1)+"</v2>",t+="<v3>"+(r+l+2)+"</v3>",t+="</triangle>\n";r+=e.vertices.length,t+="</volume>\n"}}),t+="</mesh>\n</object>\n",t+="</amf>\n"},toX3D:function(){var e={},t=[],n={};this.polygons.map(function(r){var o=0,i=0,s=1;r.shared&&r.shared.color&&(o=r.shared.color[0],i=r.shared.color[1],s=r.shared.color[2]);for(var a=[],l=r.vertices.length,u,h=0;l>h;h++)u=r.vertices[h],u.getTag()in n||(t.push(u.pos._x.toString()+" "+u.pos._y.toString()+" "+u.pos._z.toString()),n[u.getTag()]=t.length-1),a.push(n[u.getTag()]);var c=a.join(" "),p=o.toString()+" "+i.toString()+" "+s.toString();p in e||(e[p]=[]),e[p].push(c)});var r=document.implementation.createDocumentType("X3D",'ISO//Web3D//DTD X3D 3.1//EN" "http://www.web3d.org/specifications/x3d-3.1.dtd',null),o=document.implementation.createDocument(null,"X3D",r);o.insertBefore(o.createProcessingInstruction("xml",'version="1.0" encoding="UTF-8"'),o.doctype);var i=o.getElementsByTagName("X3D")[0];i.setAttribute("profile","Interchange"),i.setAttribute("version","3.1"),i.setAttribute("xsd:noNamespaceSchemaLocation","http://www.web3d.org/specifications/x3d-3.1.xsd"),i.setAttribute("xmlns:xsd","http://www.w3.org/2001/XMLSchema-instance");var s=o.createElement("Scene");i.appendChild(s);var a=!1;for(var l in e){var u=e[l],h=o.createElement("Shape");s.appendChild(h);var c=o.createElement("Appearance");h.appendChild(c);var p=o.createElement("Material");c.appendChild(p),p.setAttribute("diffuseColor",l),p.setAttribute("ambientIntensity","1.0");var f=o.createElement("IndexedFaceSet");h.appendChild(f),f.setAttribute("solid","true"),f.setAttribute("coordIndex",u.join(" -1 ")+" -1");var v=o.createElement("Coordinate");f.appendChild(v),a?v.setAttribute("USE","coords_mesh"):(v.setAttribute("DEF","coords_mesh"),v.setAttribute("point",t.join(" ")),a=!0)}var m=(new XMLSerializer).serializeToString(o);return new Blob([m],{type:"model/x3d+xml"})},toStlBinary:function(e){var t=new ArrayBuffer(4),n=new Int32Array(t,0,1),r=new Int8Array(t,0,4);if(n[0]=287454020,68!=r[0])throw new Error("Binary STL output is currently only supported on little-endian (Intel) processors");var o=0;this.polygons.map(function(e){var t=e.vertices.length,n=t>=3?t-2:0;o+=n});for(var i=new Uint8Array(80),s=0;80>s;s++)i[s]=65;var a=new Uint32Array(1);a[0]=o;var l=new ArrayBuffer(50*o),u=new Int8Array(l),h=new ArrayBuffer(50),c=new Int8Array(h),p=new Float32Array(h,0,12),f=new Uint16Array(h,48,1),v=0;if(this.polygons.map(function(e){for(var t=e.vertices.length,n=0;t-2>n;n++){var r=e.plane.normal;p[0]=r._x,p[1]=r._y,p[2]=r._z;for(var o=3,i=0;3>i;i++){var s=i+(i>0?n:0),a=e.vertices[s].pos;p[o++]=a._x,p[o++]=a._y,p[o++]=a._z}f[0]=0,u.set(c,v),v+=50}}),e&&e.webBlob)return new Blob([i.buffer,a.buffer,l],{type:"application/sla"});for(var m=new Uint8Array(i.buffer.byteLength+a.buffer.byteLength+l.byteLength),d=0,s=0;s<i.buffer.byteLength;s++)m.buffer[d++]=i.buffer[s];for(var s=0;s<a.buffer.byteLength;s++)m.buffer[d++]=a.buffer[s];for(var s=0;s<l.byteLength;s++)m.buffer[d++]=l[s];return String.fromCharCode.apply(null,new Uint8Array(m.buffer))},toString:function(){var e="CSG solid:\n";return this.polygons.map(function(t){e+=t.toString()}),e},center:function(e){e.length||(e=[e,e,e]);var t=this.getBounds();return this.translate([e[0]?-(t[1].x-t[0].x)/2-t[0].x:0,e[1]?-(t[1].y-t[0].y)/2-t[0].y:0,e[2]?-(t[1].z-t[0].z)/2-t[0].z:0])},expand:function(e,t){var n=this.expandedShell(e,t,!0);return n=n.reTesselated(),n.properties=this.properties,n},contract:function(e,t){var n=this.expandedShell(e,t,!1),r=this.subtract(n);return r=r.reTesselated(),r.properties=this.properties,r},expandedShell:function(e,n,r){var o=this.reTesselated(),s;s=r?o:new i,o.polygons.map(function(t){var n=t.plane.normal.unit().times(2*e),r=t.translate(n.times(-.5)),o=r.extrude(n);s=s.unionSub(o,!1,!1)});var a={};o.polygons.map(function(e){for(var t=e.vertices.length,n=e.vertices[t-1],r=n.getTag(),o=0;t>o;o++){var i=e.vertices[o],s=i.getTag(),l;l=r>s?s+"-"+r:r+"-"+s;var u;l in a?u=a[l]:(u={v1:n,v2:i,planenormals:[]},a[l]=u),u.planenormals.push(e.plane.normal),r=s,n=i}});for(var l in a){for(var u=a[l],h=u.v1.pos,c=u.v2.pos,p=c.minus(h).unit(),f=u.planenormals[0].unit(),v=f.cross(p),m=[],d=0;n>d;d++)m.push(d*Math.PI*2/n);for(var d=0,g=u.planenormals.length;g>d;d++){var y=u.planenormals[d],x=v.dot(y),w=f.dot(y),P=Math.atan2(x,w);0>P&&(P+=2*Math.PI),m.push(P),P=Math.atan2(-x,-w),0>P&&(P+=2*Math.PI),m.push(P)}m=m.sort(t);for(var D=m.length,V,b,S=[],_=[],T=[],d=-1;D>
768d;d++){var P=m[0>d?d+D:d],x=Math.sin(P),w=Math.cos(P),z=f.times(w*e).plus(v.times(x*e)),M=h.plus(z),A=c.plus(z),C=!1;if(d>=0&&M.distanceTo(V)<1e-5&&(C=!0),!C){if(d>=0){S.push(new i.Vertex(M)),_.push(new i.Vertex(A));var O=[new i.Vertex(b),new i.Vertex(A),new i.Vertex(M),new i.Vertex(V)],F=new i.Polygon(O);T.push(F)}V=M,b=A}}_.reverse(),T.push(new i.Polygon(S)),T.push(new i.Polygon(_));var E=i.fromPolygons(T);s=s.unionSub(E,!1,!1)}var N={};o.polygons.map(function(e){e.vertices.map(function(t){var n=t.getTag(),r;n in N?r=N[n]:(r={pos:t.pos,normals:[]},N[n]=r),r.normals.push(e.plane.normal)})});for(var B in N){for(var I=N[B],k=I.normals[0].unit(),L=null,j=0,d=1;d<I.normals.length;d++){var G=I.normals[d].unit(),R=k.cross(G),q=R.length();q>.05&&q>j&&(j=q,L=G)}L||(L=k.randomNonParallelVector());var Y=k.cross(L).unit(),U=Y.cross(k),X=i.sphere({center:I.pos,radius:e,resolution:n,axes:[k,Y,U]});s=s.unionSub(X,!1,!1)}return s},canonicalized:function(){if(this.isCanonicalized)return this;var e=new i.fuzzyCSGFactory,t=e.getCSG(this);return t.isCanonicalized=!0,t.isRetesselated=this.isRetesselated,t.properties=this.properties,t},reTesselated:function(){if(this.isRetesselated)return this;var e=this.canonicalized(),t={};e.polygons.map(function(e){var n=e.plane.getTag(),r=e.shared.getTag();n+="/"+r,n in t||(t[n]=[]),t[n].push(e)});var n=[];for(var r in t){var o=t[r];if(o.length<2)n=n.concat(o);else{var s=[];i.reTesselateCoplanarPolygons(o,s),n=n.concat(s)}}var a=i.fromPolygons(n);return a.isRetesselated=!0,a=a.canonicalized(),a.properties=this.properties,a},getBounds:function(){if(!this.cachedBoundingBox){for(var e=new i.Vector3D(0,0,0),t=new i.Vector3D(0,0,0),n=this.polygons,r=n.length,o=0;r>o;o++){var s=n[o],a=s.boundingBox();0===o?(e=a[0],t=a[1]):(e=e.min(a[0]),t=t.max(a[1]))}this.cachedBoundingBox=[e,t]}return this.cachedBoundingBox},mayOverlap:function(e){if(0===this.polygons.length||0===e.polygons.length)return!1;var t=this.getBounds(),n=e.getBounds();return t[1].x<n[0].x?!1:t[0].x>n[1].x?!1:t[1].y<n[0].y?!1:t[0].y>n[1].y?!1:t[1].z<n[0].z?!1:t[0].z>n[1].z?!1:!0},cutByPlane:function(e){if(0===this.polygons.length)return new i;var t=e.normal.times(e.w),n=0;this.polygons.map(function(e){e.vertices.map(function(e){var r=e.pos.distanceToSquared(t);r>n&&(n=r)})}),n=Math.sqrt(n),n*=1.01;var r=[],o=new i.OrthoNormalBasis(e);r.push(new i.Vertex(o.to3D(new i.Vector2D(n,-n)))),r.push(new i.Vertex(o.to3D(new i.Vector2D(-n,-n)))),r.push(new i.Vertex(o.to3D(new i.Vector2D(-n,n)))),r.push(new i.Vertex(o.to3D(new i.Vector2D(n,n))));var s=new i.Polygon(r,null,e.flipped()),a=s.extrude(e.normal.times(-n)),l=this.intersect(a);return l.properties=this.properties,l},connectTo:function(e,t,n,r){var o=e.getTransformationTo(t,n,r);return this.transform(o)},setShared:function(e){var t=this.polygons.map(function(t){return new i.Polygon(t.vertices,e,t.plane)}),n=i.fromPolygons(t);return n.properties=this.properties,n.isRetesselated=this.isRetesselated,n.isCanonicalized=this.isCanonicalized,n},setColor:function(e,t,n,r){var o=e instanceof Array?e:[e||0,t||0,n||0,isNaN(r)?1:r],s=new i.Polygon.Shared(o);return this.setShared(s)},toCompactBinary:function(){var e=this.canonicalized(),t=e.polygons.length,n=0,r=0,o={},i=[],s=0,a={},l=0,u=[],h=[],c={},p=0;e.polygons.map(function(e){e.vertices.map(function(e){++n;var t=e.getTag();t in o||(o[t]=r++,i.push(e))});var t=e.plane.getTag();t in a||(a[t]=s++,u.push(e.plane));var l=e.shared.getTag();l in c||(c[l]=p++,h.push(e.shared))});for(var f=new Uint32Array(t),v=new Uint32Array(t),m=new Uint32Array(n),d=new Uint32Array(t),g=new Float64Array(3*r),y=new Float64Array(4*s),x=0,l=0;t>l;++l){var w=e.polygons[l];f[l]=w.vertices.length,w.vertices.map(function(e){var t=e.getTag(),n=o[t];m[x++]=n});var P=w.plane.getTag(),D=a[P];d[l]=D;var V=w.shared.getTag(),b=c[V];v[l]=b}var S=0;i.map(function(e){var t=e.pos;g[S++]=t._x,g[S++]=t._y,g[S++]=t._z});var _=0;u.map(function(e){var t=e.normal;y[_++]=t._x,y[_++]=t._y,y[_++]=t._z,y[_++]=e.w});var T={"class":"CSG",numPolygons:t,numVerticesPerPolygon:f,polygonPlaneIndexes:d,polygonSharedIndexes:v,polygonVertices:m,vertexData:g,planeData:y,shared:h};return T},toPointCloud:function(e){var t=this.reTesselated(),n=new i,r={};t.polygons.map(function(e){e.vertices.map(function(e){r[e.getTag()]=e.pos})});for(var o in r){var s=r[o],a=i.cube({center:s,radius:e});n=n.unionSub(a,!1,!1)}return n=n.reTesselated()},getTransformationToFlatLying:function(){if(0===this.polygons.length)return new i.Matrix4x4;var e=this.canonicalized(),t={};e.polygons.map(function(e){t[e.plane.getTag()]=e.plane});var n=new i.Vector3D(1,0,0),r=new i.Vector3D(0,1,0),o=new i.Vector3D(0,0,1),s=new i.Connector([0,0,0],[0,0,-1],n),a=new i.Connector([0,0,0],[0,0,-1],r),l=!0,u=0,h=0,c;for(var p in t){var f=t[p],v=f.normal.times(f.w),m,d=f.normal.cross(n).length(),g=f.normal.cross(r).length();if(d>g){var y=new i.Connector(v,f.normal,n);m=y.getTransformationTo(s,!1,0)}else{var y=new i.Connector(v,f.normal,r);m=y.getTransformationTo(a,!1,0)}var x=e.transform(m),w=-f.normal.dot(o),P=x.getBounds(),D=P[1].z-P[0].z,V=l;if(V||(u>D?V=!0:D==u&&w>h&&(V=!0)),V){var b=[-.5*(P[1].x+P[0].x),-.5*(P[1].y+P[0].y),-P[0].z];m=m.multiply(i.Matrix4x4.translation(b)),u=D,h=w,c=m}l=!1}return c},lieFlat:function(){var e=this.getTransformationToFlatLying();return this.transform(e)},projectToOrthoNormalBasis:function(e){var t=[];this.polygons.map(function(n){var r=n.projectToOrthoNormalBasis(e);r.sides.length>0&&t.push(r)});var n=(new s).union(t);return n},sectionCut:function(e){var t=e.plane,n=e.plane.flipped();t=new i.Plane(t.normal,t.w+1e-4),n=new i.Plane(n.normal,n.w+1e-4);var r=this.cutByPlane(t);return r=r.cutByPlane(n),r.projectToOrthoNormalBasis(e)},fixTJunctions:function(){function e(e,n,o){var i=e.getTag(),s=n.getTag();if(i==s)throw new Error("Assertion failed");var a=i+"/"+s,l=s+"/"+i;if(l in r)return t(n,e,null),null;var u={vertex0:e,vertex1:n,polygonindex:o};return a in r?r[a].push(u):r[a]=[u],i in y?y[i].push(a):y[i]=[a],s in x?x[s].push(a):x[s]=[a],a}function t(e,t,n){var o=e.getTag(),i=t.getTag(),s=o+"/"+i;if(!(s in r))throw new Error("Assertion failed");for(var a=-1,l=r[s],u=0;u<l.length;u++){var h=l[u];if(h.vertex0==e&&h.vertex1==t&&(null===n||h.polygonindex==n)){a=u;break}}if(0>
768a)throw new Error("Assertion failed");if(l.splice(a,1),0===l.length&&delete r[s],a=y[o].indexOf(s),0>a)throw new Error("Assertion failed");if(y[o].splice(a,1),0===y[o].length&&delete y[o],a=x[i].indexOf(s),0>a)throw new Error("Assertion failed");x[i].splice(a,1),0===x[i].length&&delete x[i]}for(var n=this.canonicalized(),r={},o=0;o<n.polygons.length;o++){var s=n.polygons[o],a=s.vertices.length;if(a>=3)for(var l=s.vertices[0],u=l.getTag(),h=0;a>h;h++){var c=h+1;c==a&&(c=0);var p=s.vertices[c],f=p.getTag(),v=u+"/"+f,m=f+"/"+u;if(m in r){var d=r[m];d.splice(-1,1),0===d.length&&delete r[m]}else{var g={vertex0:l,vertex1:p,polygonindex:o};v in r?r[v].push(g):r[v]=[g]}l=p,u=f}}var y={},x={},w={},P=!0;for(var v in r)P=!1,w[v]=!0,r[v].map(function(e){var t=e.vertex0.getTag(),n=e.vertex1.getTag();t in y?y[t].push(v):y[t]=[v],n in x?x[n].push(v):x[n]=[v]});if(!P){for(var D=n.polygons.slice(0);;){var P=!0;for(var v in r)P=!1,w[v]=!0;if(P)break;for(var V=!1;;){var b=null;for(var v in w){b=v;break}if(null===b)break;var S=!0;if(b in r){var _=r[b];if(0===_.length)throw new Error("Assertion failed");for(var g=_[0],T=0;2>T;T++){var z=0===T?g.vertex0:g.vertex1,M=0===T?g.vertex1:g.vertex0,A=z.getTag(),C=M.getTag(),O=[];0===T?A in x&&(O=x[A]):A in y&&(O=y[A]);for(var F=0;F<O.length;F++){var E=O[F],N=r[E][0],B=0===T?N.vertex0:N.vertex1,I=0===T?N.vertex1:N.vertex0,k=B.getTag(),L=I.getTag();if(L!=A)throw new Error("Assertion failed");if(k==C){t(z,M,null),t(M,z,null),S=!1,T=2,V=!0;break}var j=z.pos,G=M.pos,R=B.pos,q=R.minus(j),Y=G.minus(j).dot(q)/q.dot(q);if(Y>0&&1>Y){var U=j.plus(q.times(Y)),X=U.distanceToSquared(G);if(1e-10>X){for(var o=N.polygonindex,s=D[o],W=N.vertex1.getTag(),Z=-1,K=0;K<s.vertices.length;K++)if(s.vertices[K].getTag()==W){Z=K;break}if(0>Z)throw new Error("Assertion failed");var J=s.vertices.slice(0);J.splice(Z,0,M);var H=new i.Polygon(J,s.shared);D[o]=H,t(N.vertex0,N.vertex1,o);var Q=e(N.vertex0,M,o),et=e(M,N.vertex1,o);null!==Q&&(w[Q]=!0),null!==et&&(w[et]=!0),S=!1,T=2,V=!0;break}}}}}S&&delete w[v]}if(!V)break}var tt=i.fromPolygons(D);tt.properties=n.properties,tt.isCanonicalized=!0,tt.isRetesselated=!0,n=tt}var P=!0;for(var v in r){P=!1;break}if(!P)throw new Error("!sidemapisempty");return n}},i.parseOption=function(e,t,n){var r=n;return e&&t in e&&(r=e[t]),r},i.parseOptionAs3DVector=function(e,t,n){var r=i.parseOption(e,t,n);return r=new i.Vector3D(r)},i.parseOptionAs2DVector=function(e,t,n){var r=i.parseOption(e,t,n);return r=new i.Vector2D(r)},i.parseOptionAsFloat=function(e,t,n){var r=i.parseOption(e,t,n);if("string"==typeof r&&(r=Number(r)),isNaN(r)||"number"!=typeof r)throw new Error("Parameter "+t+" should be a number");return r},i.parseOptionAsInt=function(e,t,n){var r=i.parseOption(e,t,n);if(r=Number(Math.floor(r)),isNaN(r))throw new Error("Parameter "+t+" should be a number");return r},i.parseOptionAsBool=function(e,t,n){var r=i.parseOption(e,t,n);return"string"==typeof r&&("true"==r?r=!0:"false"==r?r=!1:0==r&&(r=!1)),r=!!r},i.cube=function(e){var t=i.parseOptionAs3DVector(e,"center",[0,0,0]),n=i.parseOptionAs3DVector(e,"radius",[1,1,1]),r=i.fromPolygons([[[0,4,6,2],[-1,0,0]],[[1,3,7,5],[1,0,0]],[[0,1,5,4],[0,-1,0]],[[2,6,7,3],[0,1,0]],[[0,2,3,1],[0,0,-1]],[[4,5,7,6],[0,0,1]]].map(function(e){var r=e[0].map(function(e){var r=new i.Vector3D(t.x+n.x*(2*!!(1&e)-1),t.y+n.y*(2*!!(2&e)-1),t.z+n.z*(2*!!(4&e)-1));return new i.Vertex(r)});return new i.Polygon(r,null)}));return r.properties.cube=new i.Properties,r.properties.cube.center=new i.Vector3D(t),r.properties.cube.facecenters=[new i.Connector(new i.Vector3D([n.x,0,0]).plus(t),[1,0,0],[0,0,1]),new i.Connector(new i.Vector3D([-n.x,0,0]).plus(t),[-1,0,0],[0,0,1]),new i.Connector(new i.Vector3D([0,n.y,0]).plus(t),[0,1,0],[0,0,1]),new i.Connector(new i.Vector3D([0,-n.y,0]).plus(t),[0,-1,0],[0,0,1]),new i.Connector(new i.Vector3D([0,0,n.z]).plus(t),[0,0,1],[1,0,0]),new i.Connector(new i.Vector3D([0,0,-n.z]).plus(t),[0,0,-1],[1,0,0])],r},i.sphere=function(e){e=e||{};var t=i.parseOptionAs3DVector(e,"center",[0,0,0]),n=i.parseOptionAsFloat(e,"radius",1),r=i.parseOptionAsInt(e,"resolution",i.defaultResolution3D),o,s,a;"axes"in e?(o=e.axes[0].unit().times(n),s=e.axes[1].unit().times(n),a=e.axes[2].unit().times(n)):(o=new i.Vector3D([1,0,0]).times(n),s=new i.Vector3D([0,-1,0]).times(n),a=new i.Vector3D([0,0,1]).times(n)),4>r&&(r=4);for(var l=Math.round(r/4),u,h=[],c=0;r>=c;
768c++){var p=2*Math.PI*c/r,f=o.times(Math.cos(p)).plus(s.times(Math.sin(p)));if(c>0)for(var v=[],m,d,g=0;l>=g;g++){var y=.5*Math.PI*g/l,x=Math.cos(y),w=Math.sin(y);g>0&&(v=[],v.push(new i.Vertex(t.plus(u.times(m).minus(a.times(d))))),v.push(new i.Vertex(t.plus(f.times(m).minus(a.times(d))))),l>g&&v.push(new i.Vertex(t.plus(f.times(x).minus(a.times(w))))),v.push(new i.Vertex(t.plus(u.times(x).minus(a.times(w))))),h.push(new i.Polygon(v)),v=[],v.push(new i.Vertex(t.plus(u.times(m).plus(a.times(d))))),v.push(new i.Vertex(t.plus(f.times(m).plus(a.times(d))))),l>g&&v.push(new i.Vertex(t.plus(f.times(x).plus(a.times(w))))),v.push(new i.Vertex(t.plus(u.times(x).plus(a.times(w))))),v.reverse(),h.push(new i.Polygon(v))),m=x,d=w}u=f}var P=i.fromPolygons(h);return P.properties.sphere=new i.Properties,P.properties.sphere.center=new i.Vector3D(t),P.properties.sphere.facepoint=t.plus(o),P},i.cylinder=function(e){function t(e,t,r){var o=t*Math.PI*2,s=c.times(Math.cos(o)).plus(p.times(Math.sin(o))),a=n.plus(u.times(e)).plus(s.times(r));return new i.Vertex(a)}var n=i.parseOptionAs3DVector(e,"start",[0,-1,0]),r=i.parseOptionAs3DVector(e,"end",[0,1,0]),o=i.parseOptionAsFloat(e,"radius",1),s=i.parseOptionAsFloat(e,"radiusEnd",o),a=i.parseOptionAsFloat(e,"radiusStart",o);if(0>s||0>a)throw new Error("Radius should be non-negative");if(0===s&&0===a)throw new Error("Either radiusStart or radiusEnd should be positive");for(var l=i.parseOptionAsInt(e,"resolution",i.defaultResolution2D),u=r.minus(n),h=u.unit(),c=h.randomNonParallelVector().unit(),p=c.cross(h).unit(),f=new i.Vertex(n),v=new i.Vertex(r),m=[],d=0;l>d;d++){var g=d/l,y=(d+1)/l;s==a?(m.push(new i.Polygon([f,t(0,g,s),t(0,y,s)])),m.push(new i.Polygon([t(0,y,s),t(0,g,s),t(1,g,s),t(1,y,s)])),m.push(new i.Polygon([v,t(1,y,s),t(1,g,s)]))):(a>0&&(m.push(new i.Polygon([f,t(0,g,a),t(0,y,a)])),m.push(new i.Polygon([t(0,g,a),t(1,g,s),t(0,y,a)]))),s>0&&(m.push(new i.Polygon([v,t(1,y,s),t(1,g,s)])),m.push(new i.Polygon([t(1,g,s),t(1,y,s),t(0,y,a)]))))}var x=i.fromPolygons(m);return x.properties.cylinder=new i.Properties,x.properties.cylinder.start=new i.Connector(n,h.negated(),c
768),x.properties.cylinder.end=new i.Connector(r,h,c),x.properties.cylinder.facepoint=n.plus(c.times(a)),x},i.roundedCylinder=function(e){var t=i.parseOptionAs3DVector(e,"start",[0,-1,0]),n=i.parseOptionAs3DVector(e,"end",[0,1,0]),r=i.parseOptionAsFloat(e,"radius",1),o=n.minus(t),s;s=Math.abs(o.x)>Math.abs(o.y)?new i.Vector3D(0,1,0):new i.Vector3D(1,0,0);var a=i.parseOptionAs3DVector(e,"normal",s),l=i.parseOptionAsInt(e,"resolution",i.defaultResolution3D);4>l&&(l=4);var u=[],h=Math.floor(.25*l),c=o.length();if(1e-10>c)return i.sphere({center:t,radius:r,resolution:l});for(var p=o.unit().times(r),f=p.cross(a).unit().times(r),v=f.cross(p).unit().times(r),m,d=0;l>=d;d++){var g=2*Math.PI*d/l,y=f.times(Math.cos(g)).plus(v.times(Math.sin(g)));if(d>0){var x=[];x.push(new i.Vertex(t.plus(y))),x.push(new i.Vertex(t.plus(m))),x.push(new i.Vertex(n.plus(m))),x.push(new i.Vertex(n.plus(y))),u.push(new i.Polygon(x));for(var w,P,D=0;h>=D;D++){var V=.5*Math.PI*D/h,b=Math.cos(V),S=Math.sin(V);D>0&&(x=[],x.push(new i.Vertex(t.plus(m.times(w).minus(p.times(P))))),x.push(new i.Vertex(t.plus(y.times(w).minus(p.times(P))))),h>D&&x.push(new i.Vertex(t.plus(y.times(b).minus(p.times(S))))),x.push(new i.Vertex(t.plus(m.times(b).minus(p.times(S))))),u.push(new i.Polygon(x)),x=[],x.push(new i.Vertex(n.plus(m.times(w).plus(p.times(P))))),x.push(new i.Vertex(n.plus(y.times(w).plus(p.times(P))))),h>D&&x.push(new i.Vertex(n.plus(y.times(b).plus(p.times(S))))),x.push(new i.Vertex(n.plus(m.times(b).plus(p.times(S))))),x.reverse(),u.push(new i.Polygon(x))),w=b,P=S}}m=y}var _=i.fromPolygons(u),T=p.unit(),z=f.unit();return _.properties.roundedCylinder=new i.Properties,_.properties.roundedCylinder.start=new i.Connector(t,T.negated(),z),_.properties.roundedCylinder.end=new i.Connector(n,T,z),_.properties.roundedCylinder.facepoint=t.plus(f),_},i.roundedCube=function(e){var t=i.parseOptionAs3DVector(e,"center",[0,0,0]),n=i.parseOptionAs3DVector(e,"radius",[1,1,1]),r=i.parseOptionAsInt(e,"resolution",i.defaultResolution3D);4>r&&(r=4);var o=i.parseOptionAsFloat(e,"roundradius",.2),s=n;s=s.minus(new i.Vector3D(o));var a=i.cube({center:t,radius:[n.x,s.y,s.z]});a=a.unionSub(i.cube({center:t,radius:[s.x,n.y,s.z]}),!1,!1),a=a.unionSub(i.cube({center:t,radius:[s.x,s.y,n.z]}),!1,!1);for(var l=0;2>l;l++){var u=s.z;1==l&&(u=-u);var h=new i.Vector3D(s.x,s.y,u).plus(t),c=new i.Vector3D(s.x,-s.y,u).plus(t),p=new i.Vector3D(-s.x,-s.y,u).plus(t),f=new i.Vector3D(-s.x,s.y,u).plus(t),v=i.sphere({center:h,radius:o,resolution:r});a=a.unionSub(v,!1,!1),v=i.sphere({center:c,radius:o,resolution:r}),a=a.unionSub(v,!1,!1),v=i.sphere({center:p,radius:o,resolution:r}),a=a.unionSub(v,!1,!1),v=i.sphere({center:f,radius:o,resolution:r}),a=a.unionSub(v,!1,!0);var m=i.cylinder({start:h,end:c,radius:o,resolution:r});if(a=a.unionSub(m,!1,!1),m=i.cylinder({start:c,end:p,radius:o,resolution:r}),a=a.unionSub(m,!1,!1),m=i.cylinder({start:p,end:f,radius:o,resolution:r}),a=a.unionSub(m,!1,!1),m=i.cylinder({start:f,end:h,radius:o,resolution:r}),a=a.unionSub(m,!1,!1),0===l){var d=new i.Vector3D(0,0,-2*u);m=i.cylinder({start:h,end:h.plus(d),radius:o,resolution:r}),a=a.unionSub(m),m=i.cylinder({start:c,end:c.plus(d),radius:o,resolution:r}),a=a.unionSub(m),m=i.cylinder({start:p,end:p.plus(d),radius:o,resolution:r}),a=a.unionSub(m),m=i.cylinder({start:f,end:f.plus(d),radius:o,resolution:r}),a=a.unionSub(m,!1,!0)}}return a=a.reTesselated(),a.properties.roundedCube=new i.Properties,a.properties.roundedCube.center=new i.Vertex(t),a.properties.roundedCube.facecenters=[new i.Connector(new i.Vector3D([n.x,0,0]).plus(t),[1,0,0],[0,0,1]),new i.Connector(new i.Vector3D([-n.x,0,0]).plus(t),[-1,0,0],[0,0,1]),new i.Connector(new i.Vector3D([0,n.y,0]).plus(t),[0,1,0],[0,0,1]),new i.Connector(new i.Vector3D([0,-n.y,0]).plus(t),[0,-1,0],[0,0,1]),new i.Connector(new i.Vector3D([0,0,n.z]).plus(t),[0,0,1],[1,0,0]),new i.Connector(new i.Vector3D([0,0,-n.z]).plus(t),[0,0,-1],[1,0,0])],a},i.IsFloat=function(e){return!isNaN(e)||1/0===e||e===-1/0},i.solve2Linear=function(e,t,n,r,o,i){var s=e*r-t*n,a=1/s,l=o*r-t*i,u=-o*n+e*i;return l*=a,u*=a,[l,u]},i.Vector3D=function(e,t,n){if(3==arguments.length)this._x=parseFloat(e),this._y=parseFloat(t),this._z=parseFloat(n);else if(2==arguments.length)this._x=parseFloat(e),this._y=parseFloat(t),this._z=0;else{var r=!0;if(1==arguments.length)if("object"==typeof e)e instanceof i.Vector3D?(this._x=e._x,this._y=e._y,this._z=e._z):e instanceof i.Vector2D?(this._x=e._x,this._y=e._y,this._z=0):e instanceof Array?e.length<2||e.length>3?r=!1:(this._x=parseFloat(e[0]),this._y=parseFloat(e[1]),this._z=3==e.length?parseFloat(e[2]):0):"x"in e&&"y"in e?(this._x=parseFloat(e.x),this._y=parseFloat(e.y),this._z="z"in e?parseFloat(e.z):0):r=!1;else{var o=parseFloat(e);this._x=o,this._y=o,this._z=o}else r=!1;
768if(r&&(i.IsFloat(this._x)&&i.IsFloat(this._y)&&i.IsFloat(this._z)||(r=!1)),!r)throw new Error("wrong arguments")}},i.Vector3D.prototype={get x(){return this._x},get y(){return this._y},get z(){return this._z},set x(e){throw new Error("Vector3D is immutable")},set y(e){throw new Error("Vector3D is immutable")},set z(e){throw new Error("Vector3D is immutable")},clone:function(){return new i.Vector3D(this)},negated:function(){return new i.Vector3D(-this._x,-this._y,-this._z)},abs:function(){return new i.Vector3D(Math.abs(this._x),Math.abs(this._y),Math.abs(this._z))},plus:function(e){return new i.Vector3D(this._x+e._x,this._y+e._y,this._z+e._z)},minus:function(e){return new i.Vector3D(this._x-e._x,this._y-e._y,this._z-e._z)},times:function(e){return new i.Vector3D(this._x*e,this._y*e,this._z*e)},dividedBy:function(e){return new i.Vector3D(this._x/e,this._y/e,this._z/e)},dot:function(e){return this._x*e._x+this._y*e._y+this._z*e._z},lerp:function(e,t){return this.plus(e.minus(this).times(t))},lengthSquared:function(){return this.dot(this)},length:function(){return Math.sqrt(this.lengthSquared())},unit:function(){return this.dividedBy(this.length())},cross:function(e){return new i.Vector3D(this._y*e._z-this._z*e._y,this._z*e._x-this._x*e._z,this._x*e._y-this._y*e._x)},distanceTo:function(e){return this.minus(e).length()},distanceToSquared:function(e){return this.minus(e).lengthSquared()},equals:function(e){return this._x==e._x&&this._y==e._y&&this._z==e._z},multiply4x4:function(e){return e.leftMultiply1x3Vector(this)},transform:function(e){return e.leftMultiply1x3Vector(this)},toStlString:function(){return this._x+" "+this._y+" "+this._z},toAMFString:function(){return"<x>"+this._x+"</x><y>"+this._y+"</y><z>"+this._z+"</z>"},toString:function(){return"("+this._x.toFixed(2)+", "+this._y.toFixed(2)+", "+this._z.toFixed(2)+")"},randomNonParallelVector:function(){var e=this.abs();return e._x<=e._y&&e._x<=e._z?new i.Vector3D(1,0,0):e._y<=e._x&&e._y<=e._z?new i.Vector3D(0,1,0):new i.Vector3D(0,0,1)},min:function(e){return new i.Vector3D(Math.min(this._x,e._x),Math.min(this._y,e._y),Math.min(this._z,e._z))},max:function(e){return new i.Vector3D(Math.max(this._x,e._x),Math.max(this._y,e._y),Math.max(this._z,e._z))}},i.Vertex=function(e){this.pos=e},i.Vertex.fromObject=function(e){var t=new i.Vector3D(e.pos);return new i.Vertex(t)},i.Vertex.prototype={flipped:function(){return this},getTag:function(){var e=this.tag;return e||(e=i.getTag(),this.tag=e),e},interpolate:function(e,t){var n=this.pos.lerp(e.pos,t);return new i.Vertex(n)},transform:function(e){var t=this.pos.multiply4x4(e);return new i.Vertex(t)},toStlString:function(){return"vertex "+this.pos.toStlString()+"\n"},toAMFString:function(){return"<vertex><coordinates>"+this.pos.toAMFString()+"</coordinates></vertex>\n"},toString:function(){return this.pos.toString()}},i.Plane=function(e,t){this.normal=e,this.w=t},i.Plane.fromObject=function(e){var t=new i.Vector3D(e.normal),n=parseFloat(e.w);return new i.Plane(t,n)},i.Plane.EPSILON=1e-5,i.Plane.fromVector3Ds=function(e,t,n){var r=t.minus(e).cross(n.minus(e)).unit();return new i.Plane(r,r.dot(e))},i.Plane.anyPlaneFromVector3Ds=function(e,t,n){var r=t.minus(e),o=n.minus(e);r.length()<1e-5&&(r=o.randomNonParallelVector()),o.length()<1e-5&&(o=r.randomNonParallelVector());var s=r.cross(o);return s.length()<1e-5&&(o=r.randomNonParallelVector(),s=r.cross(o)),s=s.unit(),new i.Plane(s,s.dot(e))},i.Plane.fromPoints=function(e,t,n){return e=new i.Vector3D(e),t=new i.Vector3D(t),n=new i.Vector3D(n),i.Plane.fromVector3Ds(e,t,n)},i.Plane.fromNormalAndPoint=function(e,t){e=new i.Vector3D(e),t=new i.Vector3D(t),e=e.unit();var n=t.dot(e);return new i.Plane(e,n)},i.Plane.prototype={flipped:function(){return new i.Plane(this.normal.negated(),-this.w)},getTag:function(){var e=this.tag;return e||(e=i.getTag(),this.tag=e),e},equals:function(e){return this.normal.equals(e.normal)&&this.w==e.w},transform:function(e){var t=e.isMirroring(),n=this.normal.randomNonParallelVector(),r=this.normal.cross(n),o=this.normal.cross(r),s=this.normal.times(this.w),a=s.plus(r),l=s.plus(o);s=s.multiply4x4(e),a=a.multiply4x4(e),l=l.multiply4x4(e);var u=i.Plane.fromVector3Ds(s,a,l);return t&&(u=u.flipped()),u},splitPolygon:function(e){var t={type:null,front:null,back:null},n=this.normal,r=e.vertices,o=r.length;if(e.plane.equals(this))t.type=0;else{for(var s=i.Plane.EPSILON,a=this.w,l=!1,u=!1,h=[],c=-s,p=0;o>p;p++){var f=n.dot(r[p].pos)-a,v=0>f;h.push(v),f>s&&(l=!0),c>f&&(u=!0)}if(l||u)if(u)if(l){t.type=4;for(var m=[],d=[],v=h[0],g=0;o>g;g++){var y=r[g],x=g+1;x>=o&&(x=0);var w=h[x];if(v==w)v?d.push(y):m.push(y);else{var P=y.pos,D=r[x].pos,V=this.splitLineBetweenPoints(P,D),b=new i.Vertex(V);v?(d.push(y),d.push(b),m.push(b)):(m.push(y),m.push(b),d.push(b))}v=w}var S=i.Plane.EPSILON*i.Plane.EPSILON;if(d.length>=3)for(var _=d[d.length-1],g=0;g<d.length;g++){var y=d[g];
769y.pos.distanceToSquared(_.pos)<S&&(d.splice(g,1),g--),_=y}if(m.length>=3)for(var _=m[m.length-1],g=0;g<m.length;g++){var y=m[g];y.pos.distanceToSquared(_.pos)<S&&(m.splice(g,1),g--),_=y}m.length>=3&&(t.front=new i.Polygon(m,e.shared,e.plane)),d.length>=3&&(t.back=new i.Polygon(d,e.shared,e.plane))}else t.type=3;else t.type=2;else{var f=n.dot(e.plane.normal);t.type=f>=0?0:1}}return t},splitLineBetweenPoints:function(e,t){var n=t.minus(e),r=(this.w-this.normal.dot(e))/this.normal.dot(n);isNaN(r)&&(r=0),r>1&&(r=1),0>r&&(r=0);var o=e.plus(n.times(r));return o}
769,intersectWithLine:function(e){return e.intersectWithPlane(this)},intersectWithPlane:function(e){return i.Line3D.fromPlanes(this,e)},signedDistanceToPoint:function(e){var t=this.normal.dot(e)-this.w;return t},toString:function(){return"[normal: "+this.normal.toString()+", w: "+this.w+"]"},mirrorPoint:function(e){var t=this.signedDistanceToPoint(e),n=e.minus(this.normal.times(2*t));return n}},i.Polygon=function(e,t,n){this.vertices=e,t||(t=i.Polygon.defaultShared),this.shared=t,this.plane=arguments.length>=3?n:i.Plane.fromVector3Ds(e[0].pos,e[1].pos,e[2].pos),o&&this.checkIfConvex()},i.Polygon.fromObject=function(e){var t=e.vertices.map(function(e){return i.Vertex.fromObject(e)}),n=i.Polygon.Shared.fromObject(e.shared),r=i.Plane.fromObject(e.plane);return new i.Polygon(t,n,r)},i.Polygon.prototype={checkIfConvex:function(){if(!i.Polygon.verticesConvex(this.vertices,this.plane.normal))throw i.Polygon.verticesConvex(this.vertices,this.plane.normal),new Error("Not convex!")},setColor:function(e,t,n,r){var o=e instanceof Array?e:[e||0,t||0,n||0,isNaN(r)?1:r];return this.shared=new i.Polygon.Shared(o),this},extrude:function(e){var t=[],n=this,r=n.plane.normal.dot(e);r>0&&(n=n.flipped()),t.push(n);for(var o=n.translate(e),s=this.vertices.length,a=0;s>a;a++){var l=[],u=s-1>a?a+1:0;l.push(n.vertices[a].pos),l.push(o.vertices[a].pos),l.push(o.vertices[u].pos),l.push(n.vertices[u].pos);var h=i.Polygon.createFromPoints(l,this.shared);t.push(h)}return o=o.flipped(),t.push(o),i.fromPolygons(t)},translate:function(e){return this.transform(i.Matrix4x4.translation(e))},boundingSphere:function(){if(!this.cachedBoundingSphere){var e=this.boundingBox(),t=e[0].plus(e[1]).times(.5),n=e[1].minus(t),r=n.length();this.cachedBoundingSphere=[t,r]}return this.cachedBoundingSphere},boundingBox:function(){if(!this.cachedBoundingBox){var e,t,n=this.vertices,r=n.length;e=0===r?new i.Vector3D(0,0,0):n[0].pos,t=e;for(var o=1;r>o;o++){var s=n[o].pos;e=e.min(s),t=t.max(s)}this.cachedBoundingBox=[e,t]}return this.cachedBoundingBox},flipped:function(){var e=this.vertices.map(function(e){return e.flipped()});e.reverse();var t=this.plane.flipped();return new i.Polygon(e,this.shared,t)},transform:function(e){var t=this.vertices.map(function(t){return t.transform(e)}),n=this.plane.transform(e),r=e.elements[0]*e.elements[5]*e.elements[10];return 0>r&&t.reverse(),new i.Polygon(t,this.shared,n)},toStlString:function(){var e="";if(this.vertices.length>=3)for(var t=this.vertices[0].toStlString(),n=0;n<this.vertices.length-2;n++)e+="facet normal "+this.plane.normal.toStlString()+"\nouter loop\n",e+=t,e+=this.vertices[n+1].toStlString(),e+=this.vertices[n+2].toStlString(),e+="endloop\nendfacet\n";return e},toString:function(){var e="Polygon plane: "+this.plane.toString()+"\n";return this.vertices.map(function(t){e+="  "+t.toString()+"\n"}),e},projectToOrthoNormalBasis:function(e){var t=this.vertices.map(function(t){return e.to2D(t.pos)}),n=s.fromPointsNoCheck(t),r=n.area();return Math.abs(r)<1e-5?n=new s:0>r&&(n=n.flipped()),n},solidFromSlices:function(e){var t=[],n=null,r=null,o=null,s=null,a=2,l=!1,u,h=null;if(e&&(l=Boolean(e.loop),e.numslices&&(a=e.numslices),e.callback&&(u=e.callback)),!u){var c=new i.Polygon.createFromPoints([[0,0,0],[1,0,0],[1,1,0],[0,1,0]]);u=function(e,t){return 0==e||1==e?c.translate([0,0,e]):null}}for(var p=0,f=a-1;f>=p;p++)if(n=u.call(this,p/f,p)){if(!(n instanceof i.Polygon))throw new Error("CSG.Polygon.solidFromSlices callback error: CSG.Polygon expected");n.checkIfConvex(),r?(null===h&&(h=r.plane.signedDistanceToPoint(n.vertices[0].pos)<0),this._addWalls(t,r,n,h)):o=n,r=n}if(s=n,l){var v=o.vertices.length==s.vertices.length&&o.vertices.every(function(e,t){return e.pos.equals(s.vertices[t].pos)});v||this._addWalls(t,s,o,h)}else t.unshift(h?o:o.flipped()),t.push(h?s.flipped():s);return i.fromPolygons(t)},_addWalls:function(e,t,n,o){var s=t.vertices.slice(0),a=n.vertices.slice(0),l=n.shared||null;s[0].pos.equals(s[s.length-1].pos)||s.push(s[0]),a[0].pos.equals(a[a.length-1].pos)||a.push(a[0]),o&&(s=s.reverse(),a=a.reverse());for(var u=a.length-1,h=s.length-1,c=u-h,p=c>0,f=0>c,v=[],m=Math.abs(c);m>0;
769m--)v.push({len:1/0,index:-1});var d;if(f)for(var m=0;h>m;m++){d=s[m].pos.distanceToSquared(s[m+1].pos);for(var g=v.length-1;g>=0;g--)if(v[g].len>d){v[g].len=d,v.index=g;break}}else if(p)for(var m=0;u>m;m++){d=a[m].pos.distanceToSquared(a[m+1].pos);for(var g=v.length-1;g>=0;g--)if(v[g].len>d){v[g].len=d,v.index=g;break}}v.sort(r);for(var y=function T(e,t,n,r){return new i.Polygon([e,t,n],r)},x=s[0],w=a[0],P,D,V,b=0,S=0,_=u+h;_>b+S;){if(v.length){if(p&&S==v[0].index){P=a[++S],e.push(y(P,w,x,l)),w=P,v.shift();continue}if(f&&b==v[0].index){P=s[++b],e.push(y(w,x,P,l)),x=P,v.shift();continue}}D=h>b?w.pos.distanceToSquared(s[b+1].pos):1/0,V=u>S?x.pos.distanceToSquared(a[S+1].pos):1/0,V>=D?(P=s[++b],e.push(y(w,x,P,l)),x=P):u>S&&(P=a[++S],e.push(y(P,w,x,l)),w=P)}return e}},i.Polygon.verticesConvex=function(e,t){var n=e.length;if(n>2)for(var r=e[n-2].pos,o=e[n-1].pos,s=0;n>s;s++){var a=e[s].pos;if(!i.Polygon.isConvexPoint(r,o,a,t))return!1;r=o,o=a}return!0},i.Polygon.createFromPoints=function(e,t,n){var r;r=arguments.length<3?new i.Vector3D(0,0,0):n.normal;var o=[];e.map(function(e){var t=new i.Vector3D(e),n=new i.Vertex(t);o.push(n)});var s;return s=arguments.length<3?new i.Polygon(o,t):new i.Polygon(o,t,n)},i.Polygon.isConvexPoint=function(e,t,n,r){var o=t.minus(e).cross(n.minus(t)),i=o.dot(r);return i>=0},i.Polygon.isStrictlyConvexPoint=function(e,t,n,r){var o=t.minus(e).cross(n.minus(t)),i=o.dot(r);return i>=1e-5},i.Polygon.Shared=function(e){this.color=e},i.Polygon.Shared.fromObject=function(e){return new i.Polygon.Shared(e.color)},i.Polygon.Shared.prototype={getTag:function(){var e=this.tag;return e||(e=i.getTag(),this.tag=e),e},getHash:function(){return this.color?""+this.color[0]+"/"+this.color[1]+"/"+this.color[2]+"/"+this.color[3]:"null"}},i.Polygon.defaultShared=new i.Polygon.Shared(null),i.PolygonTreeNode=function(){this.parent=null,this.children=[],this.polygon=null,this.removed=!1},i.PolygonTreeNode.prototype={addPolygons:function(e){if(!this.isRootNode())throw new Error("Assertion failed");var t=this;e.map(function(e){t.addChild(e)})},remove:function(){if(!this.removed){if(this.removed=!0,o){if(this.isRootNode())throw new Error("Assertion failed");if(this.children.length)throw new Error("Assertion failed")}var e=this.parent.children,t=e.indexOf(this);if(0>t)throw new Error("Assertion failed");e.splice(t,1),this.parent.recursivelyInvalidatePolygon()}},isRemoved:function(){return this.removed},isRootNode:function(){return!this.parent},invert:function(){if(!this.isRootNode())throw new Error("Assertion failed");this.invertSub()},getPolygon:function(){if(!this.polygon)throw new Error("Assertion failed");return this.polygon},getPolygons:function(e){if(this.polygon)e.push(this.polygon);else{var t=[];this.children.map(function(e){e.getPolygons(t)}),t.map(function(t){e.push(t)})}},splitByPlane:function(e,t,n,r,o){var i=this.children,s=i.length;if(s>0)for(var a=0;s>a;a++)i[a].splitByPlane(e,t,n,r,o);else{var l=this.polygon;if(l){var u=l.boundingSphere(),h=u[1]+1e-4,c=e.normal,p=u[0],f=c.dot(p)-e.w;if(f>h)r.push(this);else if(-h>f)o.push(this);else{var v=e.splitPolygon(l);switch(v.type){case 0:t.push(this);break;case 1:n.push(this);break;case 2:r.push(this);break;case 3:o.push(this);break;case 4:if(v.front){var m=this.addChild(v.front);r.push(m)}if(v.back){var d=this.addChild(v.back);o.push(d)}}}}}},addChild:function(e){var t=new i.PolygonTreeNode;return t.parent=this,t.polygon=e,this.children.push(t),t},invertSub:function(){this.polygon&&(this.polygon=this.polygon.flipped()),this.children.map(function(e){e.invertSub()})},recursivelyInvalidatePolygon:function(){this.polygon&&(this.polygon=null,this.parent&&this.parent.recursivelyInvalidatePolygon())}},i.Tree=function(e){this.polygonTree=new i.PolygonTreeNode,this.rootnode=new i.Node(null),e&&this.addPolygons(e)},i.Tree.prototype={invert:function(){this.polygonTree.invert(),this.rootnode.invert()},clipTo:function(e,t){t=t?!0:!1,this.rootnode.clipTo(e,t)},allPolygons:function(){var e=[];return this.polygonTree.getPolygons(e),e},addPolygons:function(e){var t=this,n=e.map(function(e){return t.polygonTree.addChild(e)});this.rootnode.addPolygonTreeNodes(n)}},i.Node=function(e){this.plane=null,this.front=null,this.back=null,this.polygontreenodes=[],this.parent=e},i.Node.prototype={invert:function(){this.plane&&(this.plane=this.plane.flipped()),this.front&&this.front.invert(),this.back&&this.back.invert();var e=this.front;this.front=this.back,this.back=e}
769,clipPolygons:function(e,t){if(this.plane){for(var n=[],r=[],o=t?n:r,i=this.plane,s=e.length,a=0;s>a;a++){var l=e[a];l.isRemoved()||l.splitByPlane(i,o,n,r,n)}this.front&&r.length>0&&this.front.clipPolygons(r,t);var u=n.length;if(this.back&&u>0)this.back.clipPolygons(n,t);else for(var a=0;u>a;a++)n[a].remove()}},clipTo:function(e,t){this.polygontreenodes.length>0&&e.rootnode.clipPolygons(this.polygontreenodes,t),this.front&&this.front.clipTo(e,t),this.back&&this.back.clipTo(e,t)},addPolygonTreeNodes:function(e){if(0!==e.length){var t=this;if(!this.plane){var n=e[0].getPolygon().plane;this.plane=n}var r=[],o=[];e.map(function(e){e.splitByPlane(t.plane,t.polygontreenodes,o,r,o)}),r.length>0&&(this.front||(this.front=new i.Node(this)),this.front.addPolygonTreeNodes(r)),o.length>0&&(this.back||(this.back=new i.Node(this)),this.back.addPolygonTreeNodes(o))}},getParentPlaneNormals:function(e,t){t>0&&this.parent&&(e.push(this.parent.plane.normal),this.parent.getParentPlaneNormals(e,t-1))}},i.Matrix4x4=function(e){this.elements=arguments.length>=1?e:[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]},i.Matrix4x4.prototype={plus:function(e){for(var t=[],n=0;16>n;n++)t[n]=this.elements[n]+e.elements[n];return new i.Matrix4x4(t)},minus:function(e){for(var t=[],n=0;16>n;n++)t[n]=this.elements[n]-e.elements[n];return new i.Matrix4x4(t)},multiply:function(e){var t=this.elements[0],n=this.elements[1],r=this.elements[2],o=this.elements[3],s=this.elements[4],a=this.elements[5],l=this.elements[6],u=this.elements[7],h=this.elements[8],c=this.elements[9],p=this.elements[10],f=this.elements[11],v=this.elements[12],m=this.elements[13],d=this.elements[14],g=this.elements[15],y=e.elements[0],x=e.elements[1],w=e.elements[2],P=e.elements[3],D=e.elements[4],V=e.elements[5],b=e.elements[6],S=e.elements[7],_=e.elements[8],T=e.elements[9],z=e.elements[10],M=e.elements[11],A=e.elements[12],C=e.elements[13],O=e.elements[14],F=e.elements[15],E=[];return E[0]=t*y+n*D+r*_+o*A,E[1]=t*x+n*V+r*T+o*C,E[2]=t*w+n*b+r*z+o*O,E[3]=t*P+n*S+r*M+o*F,E[4]=s*y+a*D+l*_+u*A,E[5]=s*x+a*V+l*T+u*C,E[6]=s*w+a*b+l*z+u*O,E[7]=s*P+a*S+l*M+u*F,E[8]=h*y+c*D+p*_+f*A,E[9]=h*x+c*V+p*T+f*C,E[10]=h*w+c*b+p*z+f*O,E[11]=h*P+c*S+p*M+f*F,E[12]=v*y+m*D+d*_+g*A,E[13]=v*x+m*V+d*T+g*C,E[14]=v*w+m*b+d*z+g*O,E[15]=v*P+m*S+d*M+g*F,new i.Matrix4x4(E)},clone:function(){var e=this.elements.map(function(e){return e});return new i.Matrix4x4(e)},rightMultiply1x3Vector:function(e){var t=e._x,n=e._y,r=e._z,o=1,s=t*this.elements[0]+n*this.elements[1]+r*this.elements[2]+o*this.elements[3],a=t*this.elements[4]+n*this.elements[5]+r*this.elements[6]+o*this.elements[7],l=t*this.elements[8]+n*this.elements[9]+r*this.elements[10]+o*this.elements[11],u=t*this.elements[12]+n*this.elements[13]+r*this.elements[14]+o*this.elements[15];if(1!=u){var h=1/u;s*=h,a*=h,l*=h}return new i.Vector3D(s,a,l)},leftMultiply1x3Vector:function(e){var t=e._x,n=e._y,r=e._z,o=1,s=t*this.elements[0]+n*this.elements[4]+r*this.elements[8]+o*this.elements[12],a=t*this.elements[1]+n*this.elements[5]+r*this.elements[9]+o*this.elements[13],l=t*this.elements[2]+n*this.elements[6]+r*this.elements[10]+o*this.elements[14],u=t*this.elements[3]+n*this.elements[7]+r*this.elements[11]+o*this.elements[15];if(1!=u){var h=1/u;s*=h,a*=h,l*=h}return new i.Vector3D(s,a,l)},rightMultiply1x2Vector:function(e){var t=e.x,n=e.y,r=0,o=1,s=t*this.elements[0]+n*this.elements[1]+r*this.elements[2]+o*this.elements[3],a=t*this.elements[4]+n*this.elements[5]+r*this.elements[6]+o*this.elements[7],l=t*this.elements[8]+n*this.elements[9]+r*this.elements[10]+o*this.elements[11],u=t*this.elements[12]+n*this.elements[13]+r*this.elements[14]+o*this.elements[15];if(1!=u){var h=1/u;s*=h,a*=h,l*=h}return new i.Vector2D(s,a)},leftMultiply1x2Vector:function(e){var t=e.x,n=e.y,r=0,o=1,s=t*this.elements[0]+n*this.elements[4]+r*this.elements[8]+o*this.elements[12],a=t*this.elements[1]+n*this.elements[5]+r*this.elements[9]+o*this.elements[13],l=t*this.elements[2]+n*this.elements[6]+r*this.elements[10]+o*this.elements[14],u=t*this.elements[3]+n*this.elements[7]+r*this.elements[11]+o*this.elements[15];if(1!=u){var h=1/u;s*=h,a*=h,l*=h}return new i.Vector2D(s,a)},isMirroring:function(){var e=new i.Vector3D(this.elements[0],this.elements[4],this.elements[8]),t=new i.Vector3D(this.elements[1],this.elements[5],this.elements[9]),n=new i.Vector3D(this.elements[2],this.elements[6],this.elements[10]),r=e.cross(t).dot(n),o=0>r;return o}},i.Matrix4x4.unity=function(){return new i.Matrix4x4},i.Matrix4x4.rotationX=function(e){var t=e*Math.PI*(1/180),n=Math.cos(t),r=Math.sin(t),o=[1,0,0,0,0,n,r,0,0,-r,n,0,0,0,0,1];return new i.Matrix4x4(o)},i.Matrix4x4.rotationY=function(e){var t=e*Math.PI*(1/180),n=Math.cos(t),r=Math.sin(t),o=[n,0,-r,0,0,1,0,0,r,0,n,0,0,0,0,1];return new i.Matrix4x4(o)},i.Matrix4x4.rotationZ=function(e){var t=e*Math.PI*(1/180),n=Math.cos(t),r=Math.sin(t),o=[n,r,0,0,-r,n,0,0,0,0,1,0,0,0,0,1];return new i.Matrix4x4(o)},i.Matrix4x4.rotation=function(e,t,n){e=new i.Vector3D(e),t=new i.Vector3D(t);var r=i.Plane.fromNormalAndPoint(t,e),o=new i.OrthoNormalBasis(r),s=i.Matrix4x4.translation(e.negated());return s=s.multiply(o.getProjectionMatrix()),s=s.multiply(i.Matrix4x4.rotationZ(n)),s=s.multiply(o.getInverseProjectionMatrix()),s=s.multiply(i.Matrix4x4.translation(e))},i.Matrix4x4.translation=function(e){var t=new i.Vector3D(e),n=[1,0,0,0,0,1,0,0,0,0,1,0,t.x,t.y,t.z,1];return new i.Matrix4x4(n)},i.Matrix4x4.mirroring=function(e){var t=e.normal.x,n=e.normal.y,r=e.normal.z,o=e.w,s=[1-2*t*t,-2*n*t,-2*r*t,0,-2*t*n,1-2*n*n,-2*r*n,0,-2*t*r,-2*n*r,1-2*r*r,0,-2*t*o,-2*n*o,-2*r*o,1];return new i.Matrix4x4(s)}
769,i.Matrix4x4.scaling=function(e){var t=new i.Vector3D(e),n=[t.x,0,0,0,0,t.y,0,0,0,0,t.z,0,0,0,0,1];return new i.Matrix4x4(n)},i.Vector2D=function(e,t){if(2==arguments.length)this._x=parseFloat(e),this._y=parseFloat(t);else{var n=!0;if(1==arguments.length)if("object"==typeof e)e instanceof i.Vector2D?(this._x=e._x,this._y=e._y):e instanceof Array?(this._x=parseFloat(e[0]),this._y=parseFloat(e[1])):"x"in e&&"y"in e?(this._x=parseFloat(e.x),this._y=parseFloat(e.y)):n=!1;else{var r=parseFloat(e);this._x=r,this._y=r}else n=!1;if(n&&(i.IsFloat(this._x)&&i.IsFloat(this._y)||(n=!1)),!n)throw new Error("wrong arguments")}},i.Vector2D.fromAngle=function(e){return i.Vector2D.fromAngleRadians(e)},i.Vector2D.fromAngleDegrees=function(e){var t=Math.PI*e/180;return i.Vector2D.fromAngleRadians(t)},i.Vector2D.fromAngleRadians=function(e){return new i.Vector2D(Math.cos(e),Math.sin(e))},i.Vector2D.prototype={get x(){return this._x},get y(){return this._y},set x(e){throw new Error("Vector2D is immutable")},set y(e){throw new Error("Vector2D is immutable")},toVector3D:function(e){return new i.Vector3D(this._x,this._y,e)},equals:function(e){return this._x==e._x&&this._y==e._y},clone:function(){return new i.Vector2D(this._x,this._y)},negated:function(){return new i.Vector2D(-this._x,-this._y)},plus:function(e){return new i.Vector2D(this._x+e._x,this._y+e._y)},minus:function(e){return new i.Vector2D(this._x-e._x,this._y-e._y)},times:function(e){return new i.Vector2D(this._x*e,this._y*e)},dividedBy:function(e){return new i.Vector2D(this._x/e,this._y/e)},dot:function(e){return this._x*e._x+this._y*e._y},lerp:function(e,t){return this.plus(e.minus(this).times(t))},length:function(){return Math.sqrt(this.dot(this))},distanceTo:function(e){return this.minus(e).length()},distanceToSquared:function(e){return this.minus(e).lengthSquared()},lengthSquared:function(){return this.dot(this)},unit:function(){return this.dividedBy(this.length())},cross:function(e){return this._x*e._y-this._y*e._x},normal:function(){return new i.Vector2D(this._y,-this._x)},multiply4x4:function(e){return e.leftMultiply1x2Vector(this)},transform:function(e){return e.leftMultiply1x2Vector(this)},angle:function(){return this.angleRadians()},angleDegrees:function(){var e=this.angleRadians();return 180*e/Math.PI},angleRadians:function(){return Math.atan2(this._y,this._x)},min:function(e){return new i.Vector2D(Math.min(this._x,e._x),Math.min(this._y,e._y))},max:function(e){return new i.Vector2D(Math.max(this._x,e._x),Math.max(this._y,e._y))},toString:function(){return"("+this._x.toFixed(2)+", "+this._y.toFixed(2)+")"}},i.Line2D=function(e,t){e=new i.Vector2D(e),t=parseFloat(t);var n=e.length();t*=n,e=e.times(1/n),this.normal=e,this.w=t},i.Line2D.fromPoints=function(e,t){e=new i.Vector2D(e),t=new i.Vector2D(t);var n=t.minus(e),r=n.normal().negated().unit(),o=e.dot(r);return new i.Line2D(r,o)},i.Line2D.prototype={reverse:function(){return new i.Line2D(this.normal.negated(),-this.w)},equals:function(e){return e.normal.equals(this.normal)&&e.w==this.w},origin:function(){return this.normal.times(this.w)},direction:function(){return this.normal.normal()},xAtY:function(e){var t=(this.w-this.normal._y*e)/this.normal.x;return t},absDistanceToPoint:function(e){e=new i.Vector2D(e);var t=e.dot(this.normal),n=Math.abs(t-this.w);return n}
769,intersectWithLine:function(e){var t=i.solve2Linear(this.normal.x,this.normal.y,e.normal.x,e.normal.y,this.w,e.w);return t=new i.Vector2D(t)},transform:function(e){var t=new i.Vector2D(0,0),n=this.normal.times(this.w),r=t.multiply4x4(e),o=this.normal.multiply4x4(e),s=o.minus(r),a=n.multiply4x4(e),l=s.dot(a);return new i.Line2D(s,l)}},i.Line3D=function(e,t){e=new i.Vector3D(e),t=new i.Vector3D(t),this.point=e,this.direction=t.unit()},i.Line3D.fromPoints=function(e,t){e=new i.Vector3D(e),t=new i.Vector3D(t);var n=t.minus(e).unit();return new i.Line3D(e,n)},i.Line3D.fromPlanes=function(e,t){var n=e.normal.cross(t.normal),r=n.length();if(1e-10>r)throw new Error("Parallel planes");n=n.times(1/r);var o=Math.abs(n.x),s=Math.abs(n.y),a=Math.abs(n.z),l;if(o>=s&&o>=a){var u=i.solve2Linear(e.normal.y,e.normal.z,t.normal.y,t.normal.z,e.w,t.w);l=new i.Vector3D(0,u[0],u[1])}else if(s>=o&&s>=a){var u=i.solve2Linear(e.normal.x,e.normal.z,t.normal.x,t.normal.z,e.w,t.w);l=new i.Vector3D(u[0],0,u[1])}else{var u=i.solve2Linear(e.normal.x,e.normal.y,t.normal.x,t.normal.y,e.w,t.w);l=new i.Vector3D(u[0],u[1],0)}return new i.Line3D(l,n)},i.Line3D.prototype={intersectWithPlane:function(e){var t=(e.w-e.normal.dot(this.point))/e.normal.dot(this.direction),n=this.point.plus(this.direction.times(t));return n},clone:function(e){return new i.Line3D(this.point.clone(),this.direction.clone())},reverse:function(){return new i.Line3D(this.point.clone(),this.direction.negated())},transform:function(e){var t=this.point.multiply4x4(e),n=this.point.plus(this.direction),r=n.multiply4x4(e),o=r.minus(t);return new i.Line3D(t,o)},closestPointOnLine:function(e){e=new i.Vector3D(e);var t=e.minus(this.point).dot(this.direction)/this.direction.dot(this.direction),n=this.point.plus(this.direction.times(t));return n},distanceToPoint:function(e){e=new i.Vector3D(e);var t=this.closestPointOnLine(e),n=e.minus(t),r=n.length();return r},equals:function(e){if(!this.direction.equals(e.direction))return!1;var t=this.distanceToPoint(e.point);return t>1e-8?!1:!0}},i.OrthoNormalBasis=function(e,t){t=arguments.length<2?e.normal.randomNonParallelVector():new i.Vector3D(t),this.v=e.normal.cross(t).unit(),this.u=this.v.cross(e.normal),this.plane=e,this.planeorigin=e.normal.times(e.w)},i.OrthoNormalBasis.Z0Plane=function(){var e=new i.Plane(new i.Vector3D([0,0,1]),0);return new i.OrthoNormalBasis(e,new i.Vector3D([1,0,0]))},i.OrthoNormalBasis.prototype={getProjectionMatrix:function(){return new i.Matrix4x4([this.u.x,this.v.x,this.plane.normal.x,0,this.u.y,this.v.y,this.plane.normal.y,0,this.u.z,this.v.z,this.plane.normal.z,0,0,0,-this.plane.w,1])},getInverseProjectionMatrix:function(){var e=this.plane.normal.times(this.plane.w);return new i.Matrix4x4([this.u.x,this.u.y,this.u.z,0,this.v.x,this.v.y,this.v.z,0,this.plane.normal.x,this.plane.normal.y,this.plane.normal.z,0,e.x,e.y,e.z,1])},to2D:function(e){return new i.Vector2D(e.dot(this.u),e.dot(this.v))},to3D:function(e){return this.planeorigin.plus(this.u.times(e.x)).plus(this.v.times(e.y))},line3Dto2D:function(e){var t=e.point,n=e.direction.plus(t),r=this.to2D(t),o=this.to2D(n);return i.Line2D.fromPoints(r,o)},line2Dto3D:function(e){var t=e.origin(),n=e.direction().plus(t),r=this.to3D(t),o=this.to3D(n);return i.Line3D.fromPoints(r,o)},transform:function(e){var t=this.plane.transform(e),n=this.u.transform(e),r=new i.Vector3D(0,0,0).transform(e),o=n.minus(r),s=new i.OrthoNormalBasis(t,o);return s}},i.interpolateBetween2DPointsForY=function(e,t,n){var r=n-e.y,o=t.y-e.y;0>o&&(r=-r,o=-o);var i;i=0>=r?0:r>=o?1:1e-10>o?.5:r/o;var s=e.x+i*(t.x-e.x);return s},i.reTesselateCoplanarPolygons=function(e,r){var o=1e-5,s=e.length;if(s>0){for(var a=e[0].plane,l=e[0].shared,u=new i.OrthoNormalBasis(a),h=[],c=[],p={},f={},v={},m={},d=1/o*10,g=0;s>g;g++){var y=e[g],x=[],w=y.vertices.length,P=-1;if(w>0){for(var D,V,b,S=0;w>S;S++){var _=u.to2D(y.vertices[S].pos),T=Math.floor(_.y*d),z;T in m?z=m[T]:T+1 in m?z=m[T+1]:T-1 in m?z=m[T-1]:(z=_.y,m[T]=_.y),_=new i.Vector2D(_.x,z),x.push(_);var M=_.y;(0===S||D>M)&&(D=M,P=S),(0===S||M>V)&&(V=M,b=S),M in f||(f[M]={}),f[M][g]=!0}D>=V?x=[]:(D in p||(p[D]=[]),p[D].push(g))}x.reverse(),P=w-P-1,h.push(x),c.push(P)}var A=[];for(var C in f)A.push(C);A.sort(t);for(var O=[],F=[],E=0;E<A.length;E++){for(var N=[],B=A[E],C=Number(B),I=f[B],k=0;k<O.length;++k){var L=O[k],g=L.polygonindex;if(I[g]){for(var x=h[g],w=x.length,j=L.leftvertexindex,G=L.rightvertexindex;;){var R=j+1;if(R>=w&&(R=0),x[R].y!=C)break;j=R}var q=G-1;if(0>q&&(q=w-1),x[q].y==C&&(G=q),j!=L.leftvertexindex&&j==G)O.splice(k,1),--k;
769else{L.leftvertexindex=j,L.rightvertexindex=G,L.topleft=x[j],L.topright=x[G];var R=j+1;R>=w&&(R=0),L.bottomleft=x[R];var q=G-1;0>q&&(q=w-1),L.bottomright=x[q]}}}var Y;if(E>=A.length-1)O=[],Y=null;else{Y=Number(A[E+1]);var U=.5*(C+Y),X=p[B];for(var W in X){for(var g=X[W],x=h[g],w=x.length,Z=c[g],K=Z;;){var S=K+1;if(S>=w&&(S=0),x[S].y!=C)break;if(S==Z)break;K=S}for(var J=Z;;){var S=J-1;if(0>S&&(S=w-1),x[S].y!=C)break;if(S==K)break;J=S}var R=K+1;R>=w&&(R=0);var q=J-1;0>q&&(q=w-1);var H={polygonindex:g,leftvertexindex:K,rightvertexindex:J,topleft:x[K],topright:x[J],bottomleft:x[R],bottomright:x[q]};n(O,H,function(e,t){var n=i.interpolateBetween2DPointsForY(e.topleft,e.bottomleft,U),r=i.interpolateBetween2DPointsForY(t.topleft,t.bottomleft,U);return n>r?1:r>n?-1:0})}}if(!0){for(var Q in O){var L=O[Q],g=L.polygonindex,x=h[g],w=x.length,et=i.interpolateBetween2DPointsForY(L.topleft,L.bottomleft,C),tt=new i.Vector2D(et,C);et=i.interpolateBetween2DPointsForY(L.topright,L.bottomright,C);var nt=new i.Vector2D(et,C);et=i.interpolateBetween2DPointsForY(L.topleft,L.bottomleft,Y);var rt=new i.Vector2D(et,Y);et=i.interpolateBetween2DPointsForY(L.topright,L.bottomright,Y);var ot=new i.Vector2D(et,Y),it={topleft:tt,topright:nt,bottomleft:rt,bottomright:ot,leftline:i.Line2D.fromPoints(tt,rt),rightline:i.Line2D.fromPoints(ot,nt)};if(N.length>0){var st=N[N.length-1],at=it.topleft.distanceTo(st.topright),lt=it.bottomleft.distanceTo(st.bottomright);o>at&&o>lt&&(it.topleft=st.topleft,it.leftline=st.leftline,it.bottomleft=st.bottomleft,N.splice(N.length-1,1))}N.push(it)}if(E>0){for(var ut={},ht={},S=0;S<N.length;S++)for(var ct=N[S],pt=0;pt<F.length;pt++)if(!ht[pt]){var ft=F[pt];if(ft.bottomleft.distanceTo(ct.topleft)<o&&ft.bottomright.distanceTo(ct.topright)<o){ht[pt]=!0;var at=ct.leftline.direction().x-ft.leftline.direction().x,lt=ct.rightline.direction().x-ft.rightline.direction().x,vt=Math.abs(at)<o,mt=Math.abs(lt)<o,dt=vt||at>=0,gt=mt||lt>=0;dt&&gt&&(ct.outpolygon=ft.outpolygon,ct.leftlinecontinues=vt,ct.rightlinecontinues=mt,ut[pt]=!0);break}}for(var pt=0;pt<F.length;pt++)if(!ut[pt]){var ft=F[pt];ft.outpolygon.rightpoints.push(ft.bottomright),ft.bottomright.distanceTo(ft.bottomleft)>o&&ft.outpolygon.leftpoints.push(ft.bottomleft),ft.outpolygon.leftpoints.reverse();var yt=ft.outpolygon.rightpoints.concat(ft.outpolygon.leftpoints),xt=[];yt.map(function(e){var t=u.to3D(e),n=new i.Vertex(t);xt.push(n)});var wt=new i.Polygon(xt,l,a);r.push(wt)}}for(var S=0;S<N.length;S++){var ct=N[S];ct.outpolygon?(ct.leftlinecontinues||ct.outpolygon.leftpoints.push(ct.topleft),ct.rightlinecontinues||ct.outpolygon.rightpoints.push(ct.topright)):(ct.outpolygon={leftpoints:[],rightpoints:[]},ct.outpolygon.leftpoints.push(ct.topleft),ct.topleft.distanceTo(ct.topright)>o&&ct.outpolygon.rightpoints.push(ct.topright))}F=N}}}},i.fuzzyFactory=function(e,t){for(var n=[],r=0;e>r;r++)n.push({});this.lookuptable=n,this.nextElementId=1,this.multiplier=1/t,this.objectTable={}},i.fuzzyFactory.prototype={lookupOrCreate:function(e,t){var n,r=this.lookupKey(e);if(null===r){n=t(e),r=this.nextElementId++,this.objectTable[r]=n;for(var o=0;o<e.length;o++){var s=this.lookuptable[o],a=e[o],l=a*this.multiplier,u=Math.floor(l),h=Math.ceil(l);i.fuzzyFactory.insertKey(r,s,u),i.fuzzyFactory.insertKey(r,s,h)}}else n=this.objectTable[r];return n},lookupKey:function(e){for(var t={},n=0;n<e.length;n++){var r=this.lookuptable[n],o=e[n],s=Math.round(o*this.multiplier);if(s+="",!(s in r))return null;if(t=0===n?r[s]:i.fuzzyFactory.intersectSets(t,r[s]),i.fuzzyFactory.isEmptySet(t))return null}for(var a in t)return a;return null},lookupKeySetForDimension:function(e,t){var n,r=this.lookuptable[e],o=t*this.multiplier,i=Math.floor(t*this.multiplier);return n=i in r?r[i]:{}}},i.fuzzyFactory.insertKey=function(e,t,n){if(n in t)t[n][e]=!0;else{var r={};r[e]=!0,t[n]=r}},i.fuzzyFactory.isEmptySet=function(e){for(var t in e)return!1;return!0},i.fuzzyFactory.intersectSets=function(e,t){var n={};for(var r in e)r in t&&(n[r]=!0);return n},i.fuzzyFactory.joinSets=function(e,t){var n={},r;for(r in e)n[r]=!0;for(r in t)n[r]=!0;return n},i.fuzzyCSGFactory=function(){this.vertexfactory=new i.fuzzyFactory(3,1e-5),this.planefactory=new i.fuzzyFactory(4,1e-5),this.polygonsharedfactory={}},i.fuzzyCSGFactory.prototype={getPolygonShared:function(e){var t=e.getHash();return t in this.polygonsharedfactory?this.polygonsharedfactory[t]:(this.polygonsharedfactory[t]=e,e)},getVertex:function(e){var t=[e.pos._x,e.pos._y,e.pos._z],n=this.vertexfactory.lookupOrCreate(t,function(t){return e});return n},getPlane:function(e){var t=[e.normal._x,e.normal._y,e.normal._z,e.w],n=this.planefactory.lookupOrCreate(t,function(t){return e});return n},getPolygon:function(e){var t=this.getPlane(e.plane),n=this.getPolygonShared(e.shared),r=this,o=e.vertices.map(function(e){return r.getVertex(e)});return new i.Polygon(o,n,t)},getCSG:function(e){var t=this,n=e.polygons.map(function(e){return t.getPolygon(e)});return i.fromPolygons(n)}},i.staticTag=1,i.getTag=function(){return i.staticTag++},i.Properties=function(){},i.Properties.prototype={_transform:function(e){var t=new i.Properties;return i.Properties.transformObj(this,t,e),t},_merge:function(e){var t=new i.Properties;return i.Properties.cloneObj(this,t),i.Properties.addFrom(t,e),t}},i.Properties.transformObj=function(e,t,n){for(var r in e)if("_transform"!=r&&"_merge"!=r){var o=e[r],s=o;"object"==typeof o&&("transform"in o&&"function"==typeof o.transform?s=o.transform(n):o instanceof Array?(s=[],i.Properties.transformObj(o,s,n)):o instanceof i.Properties&&(s=new i.Properties,i.Properties.transformObj(o,s,n))),t[r]=s}},i.Properties.cloneObj=function(e,t){for(var n in e)if("_transform"!=n&&"_merge"!=n){var r=e[n],o=r;if("object"==typeof r)if(r instanceof Array){o=[];for(var s=0;s<r.length;s++)o.push(r[s])}else r instanceof i.Properties&&(o=new i.Properties,i.Properties.cloneObj(r,o));t[n]=o}},i.Properties.addFrom=function(e,t){for(var n in t)"_transform"!=n&&"_merge"!=n&&(n in e&&"object"==typeof e[n]&&e[n]instanceof i.Properties&&"object"==typeof t[n]&&t[n]instanceof i.Properties?i.Properties.addFrom(e[n],t[n]):n in e||(e[
769n]=t[n]))},i.Connector=function(e,t,n){this.point=new i.Vector3D(e),this.axisvector=new i.Vector3D(t).unit(),this.normalvector=new i.Vector3D(n).unit()},i.Connector.prototype={normalized:function(){var e=this.axisvector.unit(),t=this.normalvector.cross(e).unit(),n=e.cross(t);return new i.Connector(this.point,e,n)},transform:function(e){var t=this.point.multiply4x4(e),n=this.point.plus(this.axisvector).multiply4x4(e).minus(t),r=this.point.plus(this.normalvector).multiply4x4(e).minus(t);return new i.Connector(t,n,r)},getTransformationTo:function(e,t,n){t=t?!0:!1,n=n?Number(n):0;var r=this.normalized();e=e.normalized();var o=i.Matrix4x4.translation(this.point.negated()),s=i.Plane.anyPlaneFromVector3Ds(new i.Vector3D(0,0,0),r.axisvector,e.axisvector),a=new i.OrthoNormalBasis(s),l=a.to2D(r.axisvector).angle(),u=a.to2D(e.axisvector).angle(),h=180*(u-l)/Math.PI;t&&(h+=180),o=o.multiply(a.getProjectionMatrix()),o=o.multiply(i.Matrix4x4.rotationZ(h)),o=o.multiply(a.getInverseProjectionMatrix());var c=r.transform(o),p=i.Plane.fromNormalAndPoint(e.axisvector,new i.Vector3D(0,0,0)),f=new i.OrthoNormalBasis(p);l=f.to2D(c.normalvector).angle(),u=f.to2D(e.normalvector).angle(),h=180*(u-l)/Math.PI,h+=n,o=o.multiply(f.getProjectionMatrix()),o=o.multiply(i.Matrix4x4.rotationZ(h)),o=o.multiply(f.getInverseProjectionMatrix()),o=o.multiply(i.Matrix4x4.translation(e.point));var v=r.transform(o);return o},axisLine:function(){return new i.Line3D(this.point,this.axisvector)},extend:function(e){var t=this.point.plus(this.axisvector.unit().times(e));return new i.Connector(t,this.axisvector,this.normalvector)}},i.Path2D=function(e,t){t=!!t,e=e||[];var n=null;t&&e.length>0&&(n=new i.Vector2D(e[e.length-1]));var r=[];e.map(function(e){e=new i.Vector2D(e);var t=!1;if(null!==n){var o=e.distanceTo(n);t=1e-5>o}t||r.push(e),n=e}),this.points=r,this.closed=t},i.Path2D.arc=function(e){for(var t=i.parseOptionAs2DVector(e,"center",0),n=i.parseOptionAsFloat(e,"radius",1),r=i.parseOptionAsFloat(e,"startangle",0),o=i.parseOptionAsFloat(e,"endangle",360),s=i.parseOptionAsInt(e,"resolution",i.defaultResolution2D),a=i.parseOptionAsBool(e,"maketangent",!1);o-r>=720;)o-=360;for(;-720>=o-r;)o+=360;var l=[],u,h=Math.abs(o-r);if(1e-5>h)u=i.Vector2D.fromAngle(r/180*Math.PI).times(n),l.push(u.plus(t));else{var c=Math.floor(s*h/360)+1,p=.5*c/h;p>.25&&(p=.25);for(var f=a?c+2:c,v=0;f>=v;v++){var m=v;a&&(m=(v-1)*(c-2*p)/c+p,0>m&&(m=0),m>c&&(m=c));var d=r+m*(o-r)/c;u=i.Vector2D.fromAngle(d/180*Math.PI).times(n),l.push(u.plus(t))}}return new i.Path2D(l,!1)},i.Path2D.prototype={concat:function(e){if(this.closed||e.closed)throw new Error("Paths must not be closed");var t=this.points.concat(e.points);return new i.Path2D(t)},appendPoint:function(e){if(this.closed)throw new Error("Paths must not be closed");var t=this.points.concat([e]);return new i.Path2D(t)},close:function(){return new i.Path2D(this.points,!0)},rectangularExtrude:function(e,t,n){var r=this.expandToCAG(e/2,n),o=r.extrude({offset:[0,0,t]});return o},expandToCAG:function(e,t){var n=[],r=this.points.length,o=0;this.closed&&r>2&&(o=-1);for(var i,a=o;r>a;a++){var l=a;0>l&&(l=r-1);
770var u=this.points[l],h=new s.Vertex(u);if(a>o){var c=new s.Side(i,h);n.push(c)}i=h}var p=s.fromSides(n),f=p.expandedShell(e,t);return f},innerToCAG:function(){if(!this.closed)throw new Error("The path should be closed!");return s.fromPoints(this.points)},transform:function(e){var t=this.points.map(function(t){return t.multiply4x4(e)});return new i.Path2D(t,this.closed)}},i.addTransformationMethodsToPrototype=function(e){e.mirrored=function(e){return this.transform(i.Matrix4x4.mirroring(e))},e.mirroredX=function(){var e=new i.Plane(new i.Vector3D(1,0,0),0);return this.mirrored(e)},e.mirroredY=function(){var e=new i.Plane(new i.Vector3D(0,1,0),0);return this.mirrored(e)},e.mirroredZ=function(){var e=new i.Plane(new i.Vector3D(0,0,1),0);return this.mirrored(e)},e.translate=function(e){return this.transform(i.Matrix4x4.translation(e))},e.scale=function(e){return this.transform(i.Matrix4x4.scaling(e))},e.rotateX=function(e){return this.transform(i.Matrix4x4.rotationX(e))},e.rotateY=function(e){return this.transform(i.Matrix4x4.rotationY(e))},e.rotateZ=function(e){return this.transform(i.Matrix4x4.rotationZ(e))},e.rotate=function(e,t,n){return this.transform(i.Matrix4x4.rotation(e,t,n))}};var s=function(){this.sides=[]};s.fromSides=function(e){var t=new s;return t.sides=e,t},s.fromPoints=function(e){var t=e.length;if(3>t)throw new Error("CAG shape needs at least 3 points");var n=[],r=new i.Vector2D(e[t-1]),o=new s.Vertex(r);e.map(function(e){var t=new i.Vector2D(e),r=new s.Vertex(t),a=new s.Side(o,r);n.push(a),o=r});var a=s.fromSides(n);if(a.isSelfIntersecting())throw new Error("Polygon is self intersecting!");var l=a.area();
770if(Math.abs(l)<1e-5)throw new Error("Degenerate polygon!");return 0>l&&(a=a.flipped()),a=a.canonicalized()},s.fromPointsNoCheck=function(e){var t=[],n=new i.Vector2D(e[e.length-1]),r=new s.Vertex(n);return e.map(function(e){var n=new i.Vector2D(e),o=new s.Vertex(n),a=new s.Side(r,o);t.push(a),r=o}),s.fromSides(t)},s.fromFakeCSG=function(e){var t=e.polygons.map(function(e){return s.Side.fromFakePolygon(e)});return s.fromSides(t)},s.linesIntersect=function(e,t,n,r){if(t.equals(n)||r.equals(e)){var o=r.minus(n).unit().plus(t.minus(e).unit()).length();if(1e-5>o)return!0}else{var s=t.minus(e),a=r.minus(n);if(Math.abs(s.cross(a))<1e-9)return!1;var l=i.solve2Linear(-s.x,a.x,-s.y,a.y,e.x-n.x,e.y-n.y);if(l[0]>1e-6&&l[0]<.999999&&l[1]>1e-5&&l[1]<.999999)return!0}return!1},s.circle=function(e){e=e||{};for(var t=i.parseOptionAs2DVector(e,"center",[0,0]),n=i.parseOptionAsFloat(e,"radius",1),r=i.parseOptionAsInt(e,"resolution",i.defaultResolution2D),o=[],a,l=0;r>=l;l++){var u=2*Math.PI*l/r,h=i.Vector2D.fromAngleRadians(u).times(n).plus(t),c=new s.Vertex(h);l>0&&o.push(new s.Side(a,c)),a=c}return s.fromSides(o)},s.rectangle=function(e){e=e||{};var t=i.parseOptionAs2DVector(e,"center",[0,0]),n=i.parseOptionAs2DVector(e,"radius",[1,1]),r=new i.Vector2D(n.x,-n.y),o=[t.plus(n),t.plus(r),t.minus(n),t.minus(r)];return s.fromPoints(o)},s.roundedRectangle=function(e){e=e||{};var t=i.parseOptionAs2DVector(e,"center",[0,0]),n=i.parseOptionAs2DVector(e,"radius",[1,1]),r=i.parseOptionAsFloat(e,"roundradius",.2),o=i.parseOptionAsInt(e,"resolution",i.defaultResolution2D),a=Math.min(n.x,n.y);a-=.1,r=Math.min(r,a),r=Math.max(0,r),n=new i.Vector2D(n.x-r,n.y-r);var l=s.rectangle({center:t,radius:n});return r>0&&(l=l.expand(r,o)),l},s.fromCompactBinary=function(e){if("CAG"!=e["class"])throw new Error("Not a CAG");for(var t=[],n=e.vertexData,r=n.length/2,o=0,a=0;r>a;a++){var l=n[o++],u=n[o++],h=new i.Vector2D(l,u),c=new s.Vertex(h);t.push(c)}var p=[],f=e.sideVertexIndices.length/2;o=0;for(var v=0;f>v;v++){var m=e.sideVertexIndices[o++],d=e.sideVertexIndices[o++],g=new s.Side(t[m],t[d]);p.push(g)}var y=s.fromSides(p);return y.isCanonicalized=!0,y},s.prototype={toString:function(){var e="CAG ("+this.sides.length+" sides):\n";return this.sides.map(function(t){e+="  "+t.toString()+"\n"}),e},toCSG:function(e,t){var n=this.sides.map(function(n){return n.toPolygon3D(e,t)});return i.fromPolygons(n)},toDebugString1:function(){this.sides.sort(function(e,t){return e.vertex0.pos.x-t.vertex0.pos.x});var e="";return this.sides.map(function(t){e+="("+t.vertex0.pos.x+","+t.vertex0.pos.y+") - ("+t.vertex1.pos.x+","+t.vertex1.pos.y+")\n"}),e},toDebugString:function(){var e="CAG.fromSides([\n";return this.sides.map(function(t){e+="  new CAG.Side(new CAG.Vertex(new CSG.Vector2D("+t.vertex0.pos.x+","+t.vertex0.pos.y+")), new CAG.Vertex(new CSG.Vector2D("+t.vertex1.pos.x+","+t.vertex1.pos.y+"))),\n"}),e+="]);\n"},union:function(e){var t;t=e instanceof Array?e:[e];var n=this.toCSG(-1,1);t.map(function(e){n=n.unionSub(e.toCSG(-1,1),!1,!1)}),n=n.reTesselated(),n=n.canonicalized(),e=s.fromFakeCSG(n);var r=e.canonicalized();return r},subtract:function(e){var t;t=e instanceof Array?e:[e];var n=this.toCSG(-1,1);return t.map(function(e){n=n.subtractSub(e.toCSG(-1,1),!1,!1)}),n=n.reTesselated(),n=n.canonicalized(),n=s.fromFakeCSG(n),n=n.canonicalized()},intersect:function(e){var t;t=e instanceof Array?e:[e];var n=this.toCSG(-1,1);return t.map(function(e){n=n.intersectSub(e.toCSG(-1,1),!1,!1)}),n=n.reTesselated(),n=n.canonicalized(),n=s.fromFakeCSG(n),n=n.canonicalized()},transform:function(e){var t=e.isMirroring(),n=this.sides.map(function(t){return t.transform(e)}),r=s.fromSides(n);return t&&(r=r.flipped()),r},area:function(){var e=0;return this.sides.map(function(t){e+=t.vertex0.pos.cross(t.vertex1.pos)}),e*=.5},flipped:function(){var e=this.sides.map(function(e){return e.flipped()});return e.reverse(),s.fromSides(e)},getBounds:function(){var e;e=0===this.sides.length?new i.Vector2D(0,0):this.sides[0].vertex0.pos;var t=e;return this.sides.map(function(n){e=e.min(n.vertex0.pos),e=e.min(n.vertex1.pos),t=t.max(n.vertex0.pos),t=t.max(n.vertex1.pos)}),[e,t]},center:function(e){e.length||(e=[e,e]);var t=this.getBounds();return this.translate([e[0]?-(t[1].x-t[0].x)/2-t[0].x:0,e[1]?-(t[1].y-t[0].y)/2-t[0].y:0])},isSelfIntersecting:function(){for(var e=this.sides.length,t=0;e>t;t++)for(var n=this.sides[t],r=t+1;e>r;r++){var o=this.sides[r];if(s.linesIntersect(n.vertex0.pos,n.vertex1.pos,o.vertex0.pos,o.vertex1.pos))return!0}return!1},expandedShell:function(e,t){t=t||8,4>t&&(t=4);var n=[],r={},o=this.canonicalized();o.sides.map(function(t){var o=t.vertex1.pos.minus(t.vertex0.pos),i=o.length();if(i>1e-5){o=o.times(1/i);var a=o.normal().times(e),l=[t.vertex1.pos.plus(a),t.vertex1.pos.minus(a),t.vertex0.pos.minus(a),t.vertex0.pos.plus(a)],u=s.fromPoints(l);n.push(u);for(var h=0;2>h;h++){var c=0===h?t.vertex0.pos:t.vertex1.pos,p=0===h?t.vertex1.pos:t.vertex0.pos,f=c.x+" "+c.y;f in r||(r[f]=[]),r[f].push({p1:c,p2:p})}}});for(var a in r){var l=r[a],u,h,c=l[0].p1;
770if(2==l.length){var p=l[0].p2,f=l[1].p2;if(u=p.minus(c).angleDegrees(),h=f.minus(c).angleDegrees(),u>h&&(h+=360),h>=u+360&&(h-=360),u+180>h){var v=h;h=u+360,u=v}u+=90,h-=90}else u=0,h=360;var m=h>u+359.999;if(m&&(u=0,h=360),h>u+1e-5){var d=[];m||d.push(c);var g=Math.round(t*(h-u)/360);1>g&&(g=1);for(var y=0;g>=y;y++){var x=u+y/g*(h-u);y==g&&(x=h);var w=c.plus(i.Vector2D.fromAngleDegrees(x).times(e));(!m||y>0)&&d.push(w)}var P=s.fromPointsNoCheck(d);n.push(P)}}var D=new s;return D=D.union(n)},expand:function(e,t){var n=this.union(this.expandedShell(e,t));return n},contract:function(e,t){var n=this.subtract(this.expandedShell(e,t));return n},extrude:function(e){if(0==this.sides.length)return new i;var t=i.parseOptionAs3DVector(e,"offset",[0,0,1]),n=i.parseOptionAsFloat(e,"twistangle",0),r=i.parseOptionAsInt(e,"twiststeps",10);0==n&&(r=1),1>r&&(r=1);for(var o=[],s,a,l=0;r>=l;l++){var u=l/r,h=this,c=n*u;0!=c&&(h=h.rotateZ(c));var p=new i.Vector2D(t.x,t.y).times(u);h=h.translate(p);var f=h.getBounds();f[0]=f[0].minus(new i.Vector2D(1,1)),f[1]=f[1].plus(new i.Vector2D(1,1));var v=t.z*u;if(0==l||l==r){var m=h.toCSG(v-1,v+1),d=i.fromPolygons([new i.Polygon([new i.Vertex(new i.Vector3D(f[0].x,f[0].y,v)),new i.Vertex(new i.Vector3D(f[1].x,f[0].y,v)),new i.Vertex(new i.Vector3D(f[1].x,f[1].y,v)),new i.Vertex(new i.Vector3D(f[0].x,f[1].y,v))])]),g=0==l;t.z<0&&(g=!g),g&&(d=d.inverse()),d=d.intersect(m),d.polygons.map(function(e){Math.abs(e.plane.normal.z)>.99&&o.push(e)})}if(l>0)for(var y=h.sides.length,x=0;y>x;x++){var w=h.sides[x],P=s.sides[x],D=new i.Polygon([new i.Vertex(w.vertex1.pos.toVector3D(v)),new i.Vertex(w.vertex0.pos.toVector3D(v)),new i.Vertex(P.vertex0.pos.toVector3D(a))]),V=new i.Polygon([new i.Vertex(w.vertex1.pos.toVector3D(v)),new i.Vertex(P.vertex0.pos.toVector3D(a)),new i.Vertex(P.vertex1.pos.toVector3D(a))]);t.z<0&&(D=D.flipped(),V=V.flipped()),o.push(D),o.push(V)}s=h,a=v}return i.fromPolygons(o)},check:function(){var e=[];this.isSelfIntersecting()&&e.push("Self intersects");var t={};this.sides.map(function(e){function n(e){var n=e.x+" "+e.y;n in t||(t[n]=0),t[n]++}n(e.vertex0.pos),n(e.vertex1.pos)});for(var n in t){var r=t[n];1&r&&e.push("Uneven number of sides ("+r+") for point "+n)}var o=this.area();if(1e-5>o&&e.push("Area is "+o),e.length>0){var i="";throw e.map(function(e){i+=e+"\n"}),new Error(i)}},canonicalized:function(){if(this.isCanonicalized)return this;var e=new s.fuzzyCAGFactory,t=e.getCAG(this);return t.isCanonicalized=!0,t},toCompactBinary:function(){var e=this.canonicalized(),t=e.sides.length,n={},r=[],o=0,i=new Uint32Array(2*t),s=0;e.sides.map(function(e){[e.vertex0,e.vertex1].map(function(e){var t=e.getTag(),a;t in n?a=n[t]:(a=o++,n[t]=a,r.push(e)),i[s++]=a})});var a=new Float64Array(2*o),l=0;r.map(function(e){var t=e.pos;a[l++]=t._x,a[l++]=t._y});var u={"class":"CAG",sideVertexIndices:i,vertexData:a};return u},getOutlinePaths:function(){var e=this.canonicalized(),t={},n={};e.sides.map(function(e){var r=e.getTag();t[r]=e;var o=e.vertex0.getTag();o in n||(n[o]=[]),n[o].push(r)});for(var r=[];;){var o=null;for(var s in n){var a=n[s];o=a[0],a.splice(0,1),0===a.length&&delete n[s];break}if(null===o)break;for(var l=[],u=o,h=t[u],c=h.vertex0.getTag();;){l.push(h.vertex0.pos);var p=h.vertex1.getTag();if(p==c)break;if(!(p in n))throw new Error("Area is not closed!");var f=n[p],v=-1;if(1==f.length)v=0;else for(var m=null,d=h.direction().angleDegrees(),g=0;g<f.length;g++){var y=f[g],x=t[y],w=x.direction().angleDegrees(),P=w-d;-180>P&&(P+=360),P>=180&&(P-=360),(0>v||P>m)&&(v=g,m=P)}var D=f[v];f.splice(v,1),0===f.length&&delete n[p],h=t[D]}var V=new i.Path2D(l,!0);r.push(V)}return r},toDxfString:function(){var e=this.getOutlinePaths();return s.PathsToDxf(e)},toDxf:function(){var e=this.toDxfString();return new Blob([e],{type:"application/dxf"})}},s.PathsToDxf=function(e){var t="999\nDXF generated by OpenJsCad\n";return t+="  0\nSECTION\n  2\nHEADER\n",t+="  0\nENDSEC\n",t+="  0\nSECTION\n  2\nTABLES\n",t+="  0\nTABLE\n  2\nLTYPE\n  70\n1\n",t+="  0\nLTYPE\n  2\nCONTINUOUS\n  3\nSolid Line\n  72\n65\n  73\n0\n  40\n0.0\n",t+="  0\nENDTAB\n",t+="  0\nTABLE\n  2\nLAYER\n  70\n1\n",t+="  0\nLAYER\n  2\nOpe
770nJsCad\n  62\n7\n  6\ncontinuous\n",t+="  0\nENDTAB\n",t+="  0\nTABLE\n  2\nSTYLE\n  70\n0\n  0\nENDTAB\n",t+="  0\nTABLE\n  2\nVIEW\n  70\n0\n  0\nENDTAB\n",t+="  0\nENDSEC\n",t+="  0\nSECTION\n  2\nBLOCKS\n",t+="  0\nENDSEC\n",t+="  0\nSECTION\n  2\nENTITIES\n",e.map(function(e){var n=e.points.length+(e.closed?1:0);t+="  0\nLWPOLYLINE\n  8\nOpenJsCad\n  90\n"+n+"\n  70\n"+(e.closed?1:0)+"\n";for(var r=0;n>r;r++){var o=r;o>=e.points.length&&(o-=e.points.length);var i=e.points[o];t+=" 10\n"+i.x+"\n 20\n"+i.y+"\n 30\n0.0\n"}}),t+="  0\nENDSEC\n  0\nEOF\n"},s.Vertex=function(e){this.pos=e},s.Vertex.prototype={toString:function(){return"("+this.pos.x.toFixed(2)+","+this.pos.y.toFixed(2)+")"},getTag:function(){var e=this.tag;return e||(e=i.getTag(),this.tag=e),e}},s.Side=function(e,t){if(!(e instanceof s.Vertex))throw new Error("Assertion failed");if(!(t instanceof s.Vertex))throw new Error("Assertion failed");this.vertex0=e,this.vertex1=t},s.Side.fromFakePolygon=function(e){if(4!=e.vertices.length)throw new Error("Assertion failed - 1");for(var t=[],n=[],r=0;4>r;r++){var o=e.vertices[r].pos;if(o.z>=-1.001&&o.z<-.999);else if(!(o.z>=.999&&o.z<1.001))throw new Error("Assertion failed - 2");o.z>0&&(t.push(new i.Vector2D(o.x,o.y)),n.push(r))}if(2!=t.length)throw new Error("Assertion failed - 3");var a=n[1]-n[0],l,u;if(1==a)l=t[1],u=t[0];else{if(3!=a)throw new Error("Assertion failed - 4");l=t[0],u=t[1]}var h=new s.Side(new s.Vertex(l),new s.Vertex(u));return h},s.Side.prototype={toString:function(){return this.vertex0+" -> "+this.vertex1},toPolygon3D:function(e,t){var n=[new i.Vertex(this.vertex0.pos.toVector3D(e)),new i.Vertex(this.vertex1.pos.toVector3D(e)),new i.Vertex(this.vertex1.pos.toVector3D(t)),new i.Vertex(this.vertex0.pos.toVector3D(t))];return new i.Polygon(n)},transform:function(e){var t=this.vertex0.pos.transform(e),n=this.vertex1.pos.transform(e);return new s.Side(new s.Vertex(t),new s.Vertex(n))},flipped:function(){return new s.Side(this.vertex1,this.vertex0)},direction:function(){return this.vertex1.pos.minus(this.vertex0.pos)},getTag:function(){var e=this.tag;return e||(e=i.getTag(),this.tag=e),e},lengthSquared:function(){var e=this.vertex1.pos.x-this.vertex0.pos.x,t=this.vertex1.pos.y-this.vertex0.pos.y;return e*e+t*t},length:function(){return Math.sqrt(this.lengthSquared())}},s.fuzzyCAGFactory=function(){this.vertexfactory=new i.fuzzyFactory(2,1e-5)},s.fuzzyCAGFactory.prototype={getVertex:function(e){var t=[e.pos._x,e.pos._y],n=this.vertexfactory.lookupOrCreate(t,function(t){return e});return n},getSide:function(e){var t=this.getVertex(e.vertex0),n=this.getVertex(e.vertex1);return new s.Side(t,n)},getCAG:function(e){var t=this,n=e.sides.map(function(e){return t.getSide(e)});return s.fromSides(n)}},i.addTransformationMethodsToPrototype(i.prototype),i.addTransformationMethodsToPrototype(i.Vector2D.prototype),i.addTransformationMethodsToPrototype(i.Vector3D.prototype),i.addTransformationMethodsToPrototype(i.Vertex.prototype),i.addTransformationMethodsToPrototype(i.Plane.prototype),i.addTransformationMethodsToPrototype(i.Polygon.prototype),i.addTransformationMethodsToPrototype(i.Line3D.prototype),i.addTransformationMethodsToPrototype(i.Connector.prototype),i.addTransformationMethodsToPrototype(i.Path2D.prototype),i.addTransformationMethodsToPrototype(i.Line2D.prototype),i.addTransformationMethodsToPrototype(s.prototype),i.addTransformationMethodsToPrototype(s.Side.prototype),i.Polygon2D=function(e){var t=s.fromPoints(e);this.sides=t.sides},i.Polygon2D.prototype=s.prototype,e.CSG=i,e.CAG=s}(this);
771
772/**
773 * Insert links to minified files via codekit tags for concatenation.
774 * Additionally insert links to related files into "files" array
775 * for loading of separate files in dev environment.
776 */
777
778// @codekit-prepend 'lib/polyfills.min.js';
779// @codekit-prepend 'lib/angular.min.js';
780// @codekit-prepend 'lib/angular-messages.min.js';
781// @codekit-prepend 'lib/angular-locale_de-de.js';
782// @codekit-prepend 'lib/clipper.min.js';
783// @codekit-prepend 'lib/lightgl.min.js';
784// @codekit-prepend 'lib/csg.min.js';
785
786(function(){ 'use strict';
787    if (window.angular) return;
788    var files = [
789        './js/lib/polyfills.js',
790        './js/lib/angular.js',
791        './js/lib/angular-messages.js',
792        './js/lib/angular-locale_de-de.js',
793        './js/lib/clipper.js',
794        './js/lib/lightgl.js',
795        './js/lib/csg.js',
796    ];
797    for (var i=0; i<files.length; i++) {
798        if (files[i]) document.write('<script src="'+files[i]+'"></script>');
799    }
800})();

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